Professional Documents
Culture Documents
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
Licenciatura em Informtica
Sistemas Operacionais
Unidade II: Gerenciamento de Processos
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
Multiprogramao
Leitura de um registro
0,0015s
0,0001s
Total
0,0016s
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
Multiprogramao
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
Processo
Licenciatura em Informtica
Sistemas Operacionais
Mudana de Contexto
9 de maro de 2015
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
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.
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
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)
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
10
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
11
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
cdigo
dados
registradores
arquivos
cdigo
dados
arquivos
pilha
registradores
registradores
registradores
pilha
pilha
pilha
thread
thread
Thread simples
thread
Thread mltipla
thread
12
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
13
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
14
E/ S
E/ S
UCP
UCP
tempo
(a) CPU-bound
tempo
(b) I/ O-bound
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
ESCALONADORES
Um escalonador um programa responsvel pelo
15
Licenciatura em Informtica
Sistemas Operacionais
Exerccios
9 de maro de 2015
16
Licenciatura em Informtica
Sistemas Operacionais
Sincronizao
9 de maro de 2015
17
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
PROGRAMAO CONCORRENTE
Um programa concorrente executado simultaneamente
18
Licenciatura em Informtica
Sistemas Operacionais
SINCRONIZAO
9 de maro de 2015
19
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
CONCORRNCIA EM PROGRAMAS
20
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
CONCORRNCIA EM PROGRAMAS
21
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
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
23
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
mquina.
24
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
PROCEDURE Processo_B;
BEGIN
BEGIN
REPEAT
REPEAT
Pode_A := true;
Pode_B := true;
WHILE (Pode_A) DO
WHILE (Pode_B) DO
Test_And_Set (Pode_B, Bloqueio);
Regiao_Critica_B;
Bloqueio := false;
Bloqueio := false;
UNTIL false;
END;
UNTIL false;
END;
25
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
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
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
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
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
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
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
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
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
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
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
31
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
32
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
PROCEDURE Consumidor;
BEGIN
REPEAT
WHILE (Cont = 0) DO; (*faz nada*)
Le_Buffer (Dado2, Buffer);
Consome_Dado (Dado2);
Cont := Cont - 1;
UNTIL false;
END;
33
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
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
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
PROCEDURE Consumidor;
BEGIN
REPEAT
DOWN (Cheio);
DOWN (Mutex);
Le_Buffer (Dado2, Buffer);
UP (Mutex);
UP (Vazio);
Consome_Dado (Dado2);
UNTIL false;
END;
35
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
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
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
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
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
38
Licenciatura em Informtica
Sistemas Operacionais
Deadlock
9 de maro de 2015
39
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
DEADLOCK
Deadlock a situao em que um processo aguarda por um recurso que
Muitos
40
Licenciatura em Informtica
Sistemas Operacionais
DEADLOCK
ESPERA CIRCULAR
9 de maro de 2015
41
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
DEADLOCK
Exemplo Deadlock:
Lei aprovada pela assemblia norte-americana no incio
deste sculo:
42
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
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
44
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
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
46
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
DEADLOCK
Mtodos para lidar com deadlock:
Evitar dinamicamente o
deadlock.
47
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.
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
O processo
O processo
O processo
O processo
O processo
O processo
O processo
D, E e G situao de deadlock
49
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
4.
5.
6.
50
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
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
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
Licenciatura em Informtica
Sistemas Operacionais
9 de maro de 2015
DEADLOCK EVITANDO
EVITANDO O DEADLOCK
53
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
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
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
Licenciatura em Informtica
Sistemas Operacionais
Exerccios
9 de maro de 2015
57