You are on page 1of 57

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

Licenciatura em Informtica

Sistemas Operacionais
Unidade II: Gerenciamento de Processos

Msc Dinailton Jos da Silva

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

Multiprogramao
Leitura de um registro

0,0015s

Execuo de 100 instrues

0,0001s

Total

0,0016s

% utilizao da CPU (0,0001/0,0016) = 0,066 = 6,6%


A Tabela apresenta um exemplo de um programa que l registros de um arquivo

e executa, em mdia, 100 instrues por registro lido. Neste caso, o


processador gasta aproximadamente 93% do tempo esperando o dispositivo de
E/S concluir a operao para continuar o processamento.

Outro aspecto a ser considerado a subutilizao da memria principal. Um

programa que no ocupe totalmente a memria ocasiona a existncia de reas


livres sem utilizao.

Multiprogramao Otimizar o uso do processador e da memria


Gerncia de Processos

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

Multiprogramao

A multiprogramao tem como objetivo maior


maximizar a utilizao da CPU, ou seja, evitar
sempre que possvel que o processador fique ocioso.

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

Processo

Um processo um programa em execuo, incluindo os valores correntes de

todos os registradores do hardware, e das variveis manipuladas por ele no


curso de sua execuo

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

Mudana de Contexto

9 de maro de 2015

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

Caractersticas da Estrutura de um Processo

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

Bloco de Controle do Processo (PCB)


ponteiros
Estado do processo
Nome do processo
Prioridade do processo
Registradores

Limites de memria
Lista de arquivos abertos
..
..
..
..

Informaes do PCB:
Estado do processo
Contador de programa
Registradores da CPU
Informao de
escolanamento de CPU
Informao de gerncia de
memria.
Informao contbil.
Informao de status E/S.

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

Mudana de Estado do Processo

9 de maro de 2015

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

Estados de um Processo

novo
(new)

admitido

interrupo

pronto
(ready)

sada

Terminado
(terminated)

Esperando
(waiting)

Despacho do escalonador
Trmino de E/S ou evento

Executando
(running)

Espera por E/S ou evento

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

Criao e eliminao de um processo

A criao de um processo ocorre a partir do momento em


que o Sistema Operacional adiciona um novo PCB sua
estrutura e aloca um espao de endereamento na
memria para uso. No caso da eliminao de um processo,
todos os recursos associados ao processo so desalocados
e o PCB eliminado pelo Sistema Operacional.

10

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

Estrutura de Processos e Subprocessos

11

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

Thread simples e mltipla

cdigo

dados

registradores

arquivos

cdigo

dados

arquivos

pilha

registradores

registradores

registradores

pilha

pilha

pilha

thread
thread

Thread simples

thread

Thread mltipla

thread

12

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

PROCESSOS FOREGROUND E BACKGROUND (primeiro e segundo plano)

13

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

14

PROCESSOS LIMITADOS POR CPU (CPU-BOUND) E POR E/S (I/O-BOUND)

E/ S

E/ S

UCP

UCP

tempo
(a) CPU-bound

tempo
(b) I/ O-bound

limitado por CPU: passa a maior parte do tempo no estado

de execuo, ou seja, utilizando o processador.

limitado por E/S: passa a maior parte do tempo no estado

bloqueado, pois realiza um elevado nmero de operaes de


E/S.

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

ESCALONADORES
Um escalonador um programa responsvel pelo

trabalho de escolher processos e de escalar processos


para execuo.
O escalonador de processos escolhe processos

guardados em disco e os carrega na memria para


execuo.
O escalonador de CPU escolhe dentre os processos

prontos aquele que ser executado, alocando a CPU a ele.

*Algoritmos de enfileiramento sero apresentados ao longo do curso.

15

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

Exerccios

9 de maro de 2015

16

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

Sincronizao

9 de maro de 2015

17

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

PROGRAMAO CONCORRENTE
Um programa concorrente executado simultaneamente

por diversos processos que cooperam entre si.

necessria a existncia de interao entre os processos

para que o programa seja considerado concorrente.

A concorrncia deve utilizar mecanismos rpidos para

interao entre processos: variveis compartilhadas e


trocas de mensagens

O compartilhamento de recursos entre processos pode

ocasionar situaes indesejveis, capazes at de


comprometer a execuo das aplicaes. Para evitar esse
tipo de problema os processos concorrentes devem ter suas
execues sincronizadas.

18

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

SINCRONIZAO

9 de maro de 2015

19

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

CONCORRNCIA EM PROGRAMAS

20

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

CONCORRNCIA EM PROGRAMAS

Onde dois ou mais processos compartilham um mesmo

recurso, devem existir mecanismos de controle para evitar


problemas de concorrncia.
Situaes onde dois ou mais processos esto acessando
dados compartilhados, e o resultado final do processamento
depende de quem roda quando, so chamadas de condies
de corrida.

21

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA
Como evitar a ocorrncia de condies de corrida?
A questo chave para evitar qualquer problema em
compartilhamento de recursos encontrar formas de
proibir que mais de um processo acesse o dado
compartilhado ao mesmo tempo.
Excluso mtua: forma de se ter certeza de que se um
processo estiver usando uma varivel ou arquivo
compartilhados, os demais sero impedidos de fazer a
mesma coisa.

22

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA
Regies crticas As partes do programa que pode levar
ocorrncia de condies de corrida
Evitando que dois processos estejam processando suas

sees crticas ao mesmo tempo, evitaria a ocorrncia de


condies de corrida.
Embora essa soluo impea as condies de corrida, isso

no suficiente para que processos paralelos que usam


dados compartilhados executem corretamente. Precisa-se
evitar tambm outras situaes indesejadas:
1 . Nenhum processo que esteja fora de sua regio crtica
pode bloquear a execuo de outro processo.
2. Nenhum processo pode esperar indefinidamente para
entrar em sua regio crtica (starvation - espera indefinida)

23

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA Soluo de hardware


DESABILITAO DAS INTERRUPES:
Ao adentrar na sua regio crtica, o processo desabilita as interrupes da

mquina.

Isto garante que outro processo no ser escalonado para rodar.


Esta uma soluo funcional, porm ela compromete o nvel de segurana do

sistema computacional, pois se um processo desabilitar as interrupes e, por


um motivo qualquer, no habilit-las novamente, todo o sistema estar
comprometido.
BEGIN
.
Desabilita_Interrupcoes;
Regiao_Critica;
Habilita_Interrupcoes;
.
END.

24

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA - Soluo de hardware


Programa Test_And_SET TSL
PROGRAM Test_And_Set;
VAR Bloqueio : Boolean;
BEGIN
Bloqueio := false;
PARBEGIN
Processo_A;
Processo_B;
PAREND;
END.
PROCEDURE Processo_A;

PROCEDURE Processo_B;

VAR Pode_A : Boolean;

VAR Pode_B : Boolean;

BEGIN

BEGIN

REPEAT

REPEAT

Pode_A := true;

Pode_B := true;

WHILE (Pode_A) DO

WHILE (Pode_B) DO
Test_And_Set (Pode_B, Bloqueio);

Test_And_Set (Pode_A, Bloqueio);


Regiao_Critica_A;

Regiao_Critica_B;

Bloqueio := false;

Bloqueio := false;

UNTIL false;
END;

UNTIL false;
END;

25

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA - Soluo de software


PRIMEIRO ALGORITMO: ESTRITA ALTERNNCIA

PROGRAM Algoritmo1;
VAR Vez : CHAR;
BEGIN
Vez := A;
PARBEGIN
Processo_A;
Processo_B;
PAREND;
END.
PROCEDURE Processo_A;
BEGIN
REPEAT
WHILE (Vez = B) DO; (*No faz nada*)
Regiao_Critica_A;
Vez := B;
Processamento_A;
UNTIL false;
END;

PROCEDURE Processo_B;
BEGIN
REPEAT
WHILE (Vez = A) DO; (*No faz nada *)
Regiao_Critica_B;
Vez := A;
Processamento_B;
UNTIL false;
END;

26

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA - Soluo de software


SEGUNDO ALGORITMO

PROGRAM Algoritmo2;
VAR CA, CB: BOOLEAN;
BEGIN
CA := false;
CB := false;
PARBEGIN
Processo_A;
Processo_B;
PAREND;
END.
PROCEDURE Processo_A;
BEGIN
REPEAT
WHILE (CB) DO; (*No faz nada*)
CA := true;
Regiao_Critica_A;
CA := false;
Processamento_A;
UNTIL false;
END;

PROCEDURE Processo_B;
BEGIN
REPEAT
WHILE (CA) DO; (*No faz nada*)
CB := true;
Regiao_Critica_B;
CB := false;
Processamento_B;
UNTIL false;
END;

27

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA - Soluo de software


TERCEIRO ALGORITMO
PROGRAM Algoritmo3;
VAR CA, CB: BOOLEAN;
BEGIN
CA := false;
CB := false;
PARBEGIN
Processo_A;
Processo_B;
PAREND;
END.
PROCEDURE Processo_A;
BEGIN
REPEAT
CA := true;
WHILE (CB) DO; (*No faz nada*)
CA := true;
Regiao_Critica_A;
CA := false;
Processamento_A;
UNTIL false;
END;

PROCEDURE Processo_B;
BEGIN
REPEAT
CB := true;
WHILE (CA) DO; (*No faz nada*)
CB := true;
Regiao_Critica_B;
CB := false;
Processamento_B;
UNTIL false;
END;

28

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA - Soluo de software


QUARTO ALGORITMO
PROGRAM Algoritmo4;
VAR CA, CB: BOOLEAN;
BEGIN
CA := false;
CB := false;
PARBEGIN
Processo_A;
Processo_B;
PAREND;
END.
PROCEDURE Processo_A;
BEGIN
REPEAT
CA := true;
WHILE (CB) DO
BEGIN
CA := false;
{pequeno intervalo de tempo aleatrio}
CA := true;
END;
Regiao_Critica_A;
CA := false;
UNTIL false;
END;

PROCEDURE Processo_B;
BEGIN
REPEAT
CB := true;
WHILE (CA) DO
BEGIN
CB := false;
{pequeno intervalo de tempo aleatrio}
CB := true;
END;
Regiao_Critica_B;
CB := false;
UNTIL false;
END;

29

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA - Soluo de software


ALGORITMO DE PETERSON
PROGRAM Algoritmo_Peterson;
VAR CA, CB: BOOLEAN
Vez : CHAR;
BEGIN
CA := false;
CB := false;
PARBEGIN
Processo_A;
Processo_B;
PAREND;
END.
PROCEDURE Processo_A;
BEGIN
REPEAT
CA := true;
WHILE (CB and Vez = B) DO; (*faz nada*)
Regiao_Critica_A;
CA := false;
Processamento_A;
UNTIL false;
END;

PROCEDURE Processo_B;
BEGIN
REPEAT
CB := true;
WHILE (CA and Vez = A) DO;(*faz nada*)
Regiao_Critica_B;
CB := false;
Processamento_B;
UNTIL false;
END;

30

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA - Soluo de software


Apesar de todas solues de algoritmos apresentadas
implementarem a excluso mtua, todas possuam uma
deficincia conhecida como espera ocupada (busy
waiting):
Perda de tempo de processamento: todas as
solues utilizam-se de um lao de espera ocupada para
impedir que dois processos entrem ao mesmo tempo em
suas regies crticas e tais laos consomem,
desnecessariamente, o tempo do processador;
Prioridade invertida: este problema ocorre quando
existem dois processos executando, um A de alta
prioridade, e outro B de baixa prioridade e o Gerente
de Processos est programado para colocar para rodar
qualquer processo de alta prioridade que esteja no
estado de pronto.

31

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA Sincronizao condicional


O problema do produtor-consumidor, ou sincronizao

condicional, consiste em dois processos que


compartilham um buffer de tamanho fixo.
Um dos processos, o produtor, coloca informao no
buffer, e o outro, o consumidor, as retira.

32

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA - Sincronizao condicional


ALGORITMO PRODUTOR/CONSUMIDOR
PROGRAM Produtor_Consumidor_1;
CONST TamBuf = (* Tamanho qualquer *);
TYPE Tipo_Dado = (* Tipo qualquer *);
VAR Buffer : ARRAY [1..TamBuf] OF Tipo_Dado;
Dado1 : Tipo_Dado;
Dado2 : Tipo_Dado;
Cont : 0..TamBuf;
BEGIN
Cont := 0;
PARBEGIN
Produtor;
Consumidor;
PAREND;
END.
PROCEDURE Produtor;
BEGIN
REPEAT
Produz_Dado (Dado1);
WHILE (Cont = TamBuf) DO; (*faz nada*)
Grava_Buffer (Dado1, Buffer);
Cont := Cont + 1;
UNTIL false;
END;

PROCEDURE Consumidor;
BEGIN
REPEAT
WHILE (Cont = 0) DO; (*faz nada*)
Le_Buffer (Dado2, Buffer);
Consome_Dado (Dado2);
Cont := Cont - 1;
UNTIL false;
END;

33

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA - SEMFOROS


ALGORITMO SEMFORO
PROGRAM Semaforo_1;
VAR S : Semaforo := 1;
BEGIN
PARBEGIN
Processo_A;
Processo_B;
PAREND;
END.
PROCEDURE Processo_A;
BEGIN
DOWN (S);
Regiao_Critica_A;
UP (S);
Processamento_A;
END;

PROCEDURE Processo_B;
BEGIN
DOWN (S);
Regiao_Critica_B;
UP (S);
Processamento_B;
END;
TYPE Semaforo = RECORD
Valor : INTEGER;
Fila_Espera : (*Lista de processos pendentes*);
END;
PROCEDURE UP (Var S : Semaforo);
PROCEDURE DOWN (Var S :
Semaforo);
BEGIN
BEGIN
S := S + 1;
IF(Tem_Proc_Espera) THEN
IF (S = 0) THEN
Tira_Proc;
Coloca_Proc_Fila
ELSE
END;
S := S - 1;
END;

34

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA - SEMFOROS

ALGORITMO SEMFORO Produtor/Consumidor


PROGRAM Produtor_Consumidor_2;
CONST TamBuf = 2;
TYPE Tipo_Dado = (* tipo qualquer *);
VAR Vazio : Semaforo := TamBuf;
Cheio ; Semaforo := 0;
Mutex : Semaforo := 1;
Buffer : ARRAY [1..TamBuf] OF Tipo_Dado;
Dado1 : Tipo_Dado;
Dado2 : Tipo_Dado;
BEGIN
PARBEGIN
Produtor;
Consumidor;
PAREND;
END.
PROCEDURE Produtor;
BEGIN
REPEAT
Produz_Dado (Dado1);
DOWN (Vazio);
DOWN (Mutex);
Grava_Buffer (Dado1, Buffer);
UP (Mutex);
UP (Cheio);
UNTIL false;
END;

PROCEDURE Consumidor;
BEGIN
REPEAT
DOWN (Cheio);
DOWN (Mutex);
Le_Buffer (Dado2, Buffer);
UP (Mutex);
UP (Vazio);
Consome_Dado (Dado2);
UNTIL false;
END;

35

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

EXCLUSO MTUA Troca de Mensagens


ALGORITMO Troca de Mensagens Produtor/Consumidor

PROGRAM Produtor_Consumidor_4;
BEGIN
PARBEGIN
Produtor;
Consumidor;
PAREND;
END.
PROCEDURE Produtor;
PROCEDURE Consumidor;
VAR Msg : Tipo_Msg;
VAR Msg : Tipo_Msg;
BEGIN
BEGIN
REPEAT
REPEAT
RECEIVE (Msg);
Produz_Mensagem
(Msg);
Consome_Mensagem
SEND (Msg);
(Msg);
UNTIL false;
UNTIL false;
END;
END;

36

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

Problemas Clssicos de Sincronizao


Problema dos filsofos: um exemplo clssico de sincronizao de

processos.
Considera a existncia de cinco filsofos sentados em torno de uma
mesa redonda. Cada filsofo tem sua frente um prato de macarro.
Um filsofo que deseje comer precisa contar com o auxlio de 2 garfos
e entre cada prato existe um garfo.
A vida de um filsofo consiste em
perodos nos quais ele alternadamente
come e pensa. Quando um filsofo sente
fome, ele tenta tomar posse dos garfos
sua direita e sua esquerda, um por vez,
em qualquer ordem. Se ele tiver sucesso
nesta empreitada, come um pouco do
macarro, libera os garfos e continua a
pensar.
A questo a ser respondida : como
escrever um programa para simular a ao
de cada filsofo que nunca leve a
situaes de bloqueio?

37

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

Problemas Clssicos de Sincronizao


PROBLEMA DO BARBEIRO SONOLENTO
Neste problema, considera-se uma barbearia onde existe um barbeiro,
uma cadeira de barbeiros e diversos lugares onde os clientes que
estiverem esperando, podero sentar.

Se no houver nenhum cliente


presente, o barbeiro
simplesmente senta em sua
cadeira e cai no sono. Quando
chegarem fregueses, enquanto o
barbeiro estiver cortando o
cabelo de outro, estes devem
sentar, se houver cadeira vazia,
ou ir embora, se no houver
nenhuma cadeira disponvel

38

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

Deadlock

9 de maro de 2015

39

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK
Deadlock a situao em que um processo aguarda por um recurso que

nunca estar disponvel ou um evento que no ocorrer.

Essa situao consequncia, na maioria das vezes, do

compartilhamento de recursos, como dispositivos, arquivos e registros,


entre outros processos concorrentes em que a excluso mtua
exigida.

Muitos

deadlock ocorrem em sistemas de computao devido

natureza de recursos dedicados (isto , os recursos somente podem


ser usados por um usurio por vez).

40

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

DEADLOCK
ESPERA CIRCULAR

9 de maro de 2015

41

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK
Exemplo Deadlock:
Lei aprovada pela assemblia norte-americana no incio

deste sculo:

"Quando dois trens se aproximarem um do outro em um


cruzamento, ambos devero parar completamente e
nenhum dos dois dever ser acionado at que o outro
tenha partido."

42

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK
Exemplo Deadlock:
DEADLOCK DE TRFEGO
Um certo nmero de automveis est tentando atravessar uma parte
da cidade bastante movimentada, mas o trfego ficou completamente
paralisado.
O trfego chegou numa
situao onde somente a
polcia pode resolver a
questo, fazendo com que
alguns carros recuem na rea
congestionada. Eventualmente
o trfego volta a fluir
normalmente, mas a essa
altura os motoristas j se
aborreceram e perderam
tempo considervel.

43

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK
Em uma situao de operao normal, um processo pode
utilizar um recurso somente se:
Requisitar: se a requisio no pode ser atendida

imediatamente (por exemplo, o recurso est em uso por


outro processo), ento o processo requisitante deve
esperar at obter o recurso;
Usar: O processo pode operar sobre o recurso (por

exemplo, se o recurso uma impressora, ele pode


imprimir) e;
Liberar: O processo libera o recurso.

44

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK
Existe quatro condies necessrias para que ocorra um
deadlock:
Condio de excluso mtua: cada recurso s pode
estar alocado a nico processo em um determinado
instante.
Condio de posse e de espera: processos que estejam
de posse de recursos obtidos anteriormente podem
solicitar novos recursos.
Condio de no-preempo: recursos j alocados a
processos no podem ser tomados fora. Eles precisam
ser liberados explicitamente pelo processo que o detm.
Condio de espera circular: deve existir uma cadeia
circular de dois ou mais processos, cada um dos quais
esperando por um recurso que est com o prximo
membro da cadeia.

45

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK (Ocorrncia e Evitando)

46

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK
Mtodos para lidar com deadlock:
Evitar dinamicamente o

deadlock, pela cuidadosa alocao dos

recursos aos processos. Isto requer que sejam fornecidas ao sistema


operacional informaes adicionais sobre quais recursos um processo
ir requisitar e usar durante sua execuo.
Prevenir o

deadlock por meio de um conjunto de mtodos para

garantir que pelo menos uma das condies necessrias (slide


anterior) no poder ser satisfeita.
Detectar e recuperar uma situao de

deadlock.

Ignorar completamente o problema. Se um sistema que nem

previne, evita ou recupera situaes de deadlock, se um ocorrer, no


haver maneira de saber o que aconteceu exatamente. Neste caso, o
deadlock no detectado causar a degredao do desempenho do
sistema, porque recursos esto detidos por processos que no podem
continuar, e porque mais e mais processos, conforme requisitam
recursos, entram em deadlock.

47

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

48

DEADLOCK
Algoritmo do Avestruz:
a abordagem mais simples: "enterre a cabea na areia e finja que
no h nenhum problema acontecendo" (Tanenbaum, 2008).

A estratgia do UNIX:
simplesmente ignorar o problema.
Maioria dos usurios preferi a
ocorrncia de deadlocks ocasionais.
Custo alto para eliminao
(restries inconvenientes ao uso
dos recursos)
Deciso: convenincia ou correo.

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK Deteco (1 recurso para cada tipo)


Um recurso para cada tipo:
1.
2.
3.
4.
5.
6.
7.

O processo
O processo
O processo
O processo
O processo
O processo
O processo

A possui o recurso R e requisita o recurso S.


B nada possui, mas requisita o recurso T.
C nada possui, mas requisita o recurso S.
D possui o recurso U e requisita os recursos S e T.
E possui o recurso T e requisita o recurso V.
F possui o recurso W e requisita o recurso S.
G possui o recurso V e requisita o recurso U.

D, E e G situao de deadlock

49

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK Deteco (1 recurso para cada tipo)


Se detectar um ciclo o algoritmo termina:
1.
2.
3.

4.

5.
6.

Para cada nodo N no grafo execute os cinco passos seguintes, em que


N o nodo inicial.
Inicialize L com uma lista vazia e assinale todos os arcos como
desmarcados (L=[]).
Insira o nodo atual da lista L (L=[R,A]) e verifique se o nodo agora
aparece em L duas vezes. Em caso afirmativo, o grafo contm um ciclo e
o algoritmo termina.
A partir do referido nodo, verifique se existe algum arco de sada
desmarcado. Em caso de afirmativo v para o passo 5; do contrrio, v
para o passo 6.
Escolha aleatoriamente um arco de sada desmarcado e marque-o. Ento,
siga esse arco para obter o novo novo atual e v para o passo 3.
O final foi alcanado. Remova-o e volte para o nodo anterior , marque-o
como atual e v para o passo 3. Se esse nodo for o inicial, o grafo no
conter ciclo algum e o algoritmo terminar.

50

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK Deteco (vrios recursos para cada tipo)


Recursos existentes

E = (4 3 2 1)

0 0 1 0
C = 2 0 0 1
0 1 2 0
E
A
C
D

Recursos disponveis

A = (2 1 0 0)

2 0 0 1
R = 1 0 1 0
2 1 0 0

Recursos existentes
Recursos disponveis
Matriz de alocao atual (linha = processo, coluna = recurso utilizado)
Matriz de requisies (linha = processo, coluna = requisio de recurso)

51

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK RECUPERAO
Por meio de preempo:
>>Tomar temporariamente um recurso de seu atual dono e entreg-lo a
outro processo.
Por meio de reverso de estado (volta ao passado):
>>Um processo que possui um dos recursos necessrios revertido apara
um estado em um instante anterior ao momento em que adquiriu algum
outro recurso.
>>Se o processo que sofreu reverso de estado tentar adquirir o recurso
novamente, ele ter de esperar at o recurso estar disponvel.
Por meio de eliminao de processos:
>> a maneira mais rude, mas tambm a mais simples de se eliminar a
situao de deadlock matar o processo
>>Sempre que possvel, melhor matar o processo que seja capaz de ser
executado desde o seu incio para evitar efeitos colaterais.

52

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK EVITANDO

EVITANDO O DEADLOCK

Se o sistema for capaz de decidir se a alocao


de determinado recurso ou no segura, e s
fazer a alocao quando ela for segura, teremos
como evitar deadlocks.

53

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK EVITANDO

Estado Seguro
>>existe uma sequencia de alocaes que
permitem que todos os processos venham a
terminar seus processamentos.

54

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK EVITANDO

Estado Inseguro
>>No h garantia de que o processo ser
concludo no seu ciclo de processamento.

55

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

9 de maro de 2015

DEADLOCK EVITANDO

Algoritmo do Banqueiro
>>se requisio de processo for maior que a
capacitada ofertada, a mesma no ser atendida.

56

Dinailton Jose da Silva

Licenciatura em Informtica

Sistemas Operacionais

Exerccios

9 de maro de 2015

57

You might also like