Você está na página 1de 5

Mtodos de excluso mtua em disputa entre processos

Excluso mtua (Mutex)- Algoritmos em programao concorrente para


evitar uso simultneo de recursos.
Regio crtica- Algoritmo de um processo responsvel por acessar um
recurso concorrido
Contedo
1 desabilitando interrupes
1.1 Vantagens
1.2 Desvantagens
2 Variveis de impedimento (lock variables)
2.1 Desvantagens
3 Alternncia obrigatria
3.1 Vantagens
3.2 Desvantagens
3.3 Algoritmo Peterson
3.4 Desvantagens
4 Instruo TSL com variveis de impedimento
4.1 Vantagens
4.2 Desvantagens
4.3 Dormir e Acordar
4.4 Vantagens
4.5 Desvantagens
5 Semforos
5.1 Vantagens
desabilitando interrupes

Processo desabilita o escalonamento enquanto entra em regio crtica.

Vantagens

o mtodo mais simples.


Desvantagens
Processo pode nunca mais sair de regio crtica, comprometendo o sistema.
Em sistemas multiprocessados, esse metodo apenas desabilitar um CPU.
Outros processos sendo processados em outros CPUs ainda podem entrar
em regio crtica e criar condies de disputa.
Variveis de impedimento (lock variables)

Implementao de variveis que informam se j existe processos em regio


crtica.

Desvantagens
Ocorre condies de disputa no uso das variveis. 2 processos podero ler a
varivel ao mesmo tempo, e entraro em regio critica simultaneamente.
Alternncia obrigatria

Cada processo recebe um nmero nico para uso da regio crtica. Uma
varivel de impedimento informar qual processo poder entrar em regio
crtica. Apenas o processo com o mesmo nmero pode entrar em regio
crtica. O processo que sair da regio crtica mudar a varivel para o
prximo processo. Os processos que desejam entrar em regio crtica tero
esperas ociosas, testando a varivel de impedimento constantemente. (spin
lock)

Problema da inverso de prioridade- Ocorre quando Um processo de baixa


prioridade entra em regio crtica antes de um processo de alta prioridade.
Como o de alta ficar ocioso esperando, o escalonamento dar preferncia
ao de alta prioridade, gastando maior parte do processamento em espera
ociosa, podendo at mesmo a impedir o provesso de baixa prioridade,
deixando os 2 processos em deadlock. Neste caso o processo de baixa
prioridade deveria receber maior prioridade que o ocioso.
Vantagens
Elimina completamente condies de disputa.
Desvantagens
Espera ociosa

Ser muito comum casos em que o numero da varivel ser de um processo


que no est em regio crtica. Ento todos processos que queiram entrar
em regio crtica tero que esperar esse processo entrar e sair da regio
crtica, o que poder demorar muito.
Algoritmo Peterson
Os processos interessados em entar em regio crtica informam sua
inteno, e, caso nenhum outro processo tenha inteno de entrar, colocam
seu id em uma varivel de interrupo, imediatamente testam se a varivel
ainda tem seu ID, e entram em regio crtica. Se 2 processos escreverem na
varivel simultaneamente, apenas o ltimo ID ser vlido (pois escrever
por cima do outro ID). O outro ver que a varivel no tem mais seu ID e
entrar em spin lock at o outro acabar.

Desvantagens
Espera ociosa
Instruo TSL com variveis de impedimento

Uso da instruo TSL REGISTER,LOCK do hardware, que copia a varivel de


impedimento (LOCK) para o registrador (REGISTER) e bota a varivel para 1.
Depois s ler o valor no registro, se for 0, o processo pode entrar. Se for 1
ele entra em espera ociosa. at a variavel ficar 0. Ao sair basta botar a
varivel para 0.

Vantagens
Enquanto o CPU usa a varivel lock, nenhum outro CPU tem acesso.
Desvantagens
Espera ociosa
Depende do suporte de hardware.
Dormir e Acordar
O processo que no consegue entrar em regio crtica no fica ocioso. Ao
invs disso ele dorme (sleep). Quando estiver disponvel a regio crtica, o
processo saindo da regio crtica acorda ele (wakeup).

problema produtor-consumidor (problema do buffer limitado)- suponha 2


processos com um buffer compartilhado. Um escreve no buffer (produtor) e

o outro o l (consumidor). Quando o buffer estiver cheio, o produtor ir


dormir at que o consumidor leia um item e o remova do buffer. Do mesmo
modo, quando o buffer estiver vazio e o consumidor quizer um item, ele ir
dormir at que o produtor adicione um item. O problema est na condio
de disputa ao lerem a varivel de nmero de itens (count). Se o consumidor
ver o buffer est vazio (count = 0), e imediatamente depois o escalonador
passa para o produtor, o produtor ver o buffer vazio e mandar o
consumidor acordar, porm, o consumidor ainda no foi dormir e o comando
perdido. Logo depois o consumidor vai dormir. Neste caso, se o buffer
lotar, o produtor vai dormir, e no ter ningum para acordar os 2. Uma
soluo simples o bit de espera de acordar (wakeup waiting bit). Nela, ao
receber o comando para acordar, o consumidor informa de que ainda est
acordado (botando 1 no wakeup waiting bit). Quando o consumidor for
dormir e esse bit estiver ligado, ele desliga esse bit e permanece acordado.
Essa soluo eficiente para 2 processos, mas se complica quanto mais
processos estiverem envolvidos.
Vantagens
Resolve o problema de inverso de prioridade.
Desvantagens
Possibilidade do problema produtor-consumidor ocorrer
Semforos

Este mtodo possui um nmero inteiro (semforo) representando o wakeup


waiting bits. Haver 2 funes para auxiliar sleep-awake: down (sleep) e up
(awake). Down ir decrementar o semforo. Se ele estiver 0 o processo ir
dormir. Up ir acordar um processo, ou incrementar o semforo, caso no h
processos dormindo.

tipos de semforos:

full- conta os lugares preenchidos no buffer. Inicialmente 0.


empty- conta os lugares vazios do buffer. Inicialmente o nmero de
lugares no buffer.
mutex- impede que consumidor e produtor acessem o buffer ao mesmo
tempo. inicialmente 1. Mutexes so semforos binrios que no contam
quantas vezes o up foi chamado. So mais simples que semforos normais.
Para que no ocorra condio de disputa no semforo deve ser ser
garantido:

que as aes de up e down: ler o semforo, alter-lo e


dormir/acordar,devem ocorrer sem interrupo pelo escalonamento.
que nenhum outro CPU deve ter acesso ao semforo enquanto um o estiver
usando (durante as funes up e down), em sistemas multiprocessados. Isso
pode ser feito usando TSL com variveis de impedimento para o semforo
(o acesso ao semforo por up e down muito rpido, o que evita grandes
esperas ociosas pelos CPUs).
Vantagens
Resolve o problema produtor-consumidor.
Page categories: Sistemas Operacionais

Você também pode gostar