Escolar Documentos
Profissional Documentos
Cultura Documentos
OPERACIONAIS
Sincronizao entre Processos
Andreza Leite
andreza.leite@univasf.edu.br
Sincronizao
Regies crticas
Excluso mtua
Dormir e acordar
Semforos
Sincronizao
Desabilitar interrupes.
Variveis de impedimento/trava (lock variables).
Alternncia obrigatria.
Soluo/Algoritmo de Peterson.
(Permite a dois ou mais processos ou subprocessos compartilharem
um recurso sem conflitos, utilizando apenas memria compartilhada
para a comunicao)
Dormir e Acordar
A soluo de Peterson correta mas apresenta o
defeito de precisar da espera ociosa.
Quando quer entrar na regio crtica um processo
verifica se sua entrada permitida. Se no for, ele
ficar em um lao at que possa entrar.
Gasta tempo de CPU
Observemos as primitivas de comunicao entre
processos que bloqueiam em vez de gastar tempo
de CPU quando no podem entrar em sua regio
crtica
Uma das mais simples o par sleep e wakeup
Dormir e Acordar
Sleep uma chamada de sistema que faz com que
o processo que a chama durma/ fique suspenso at
que outro processo o desperte.
A chamada wakeup tem como parmetro o
processo a ser despertado
Estas chamadas podem ainda podem ter outro
parmetro:
um endereo de memria para equiparar os wakeups
a seus respectivos sleeps.
Problema do produtor- consumidor
Semforos
Uma varivel inteira para contar o nmero de sinais de
acordar salvos para uso futuro.
Este pode conter valor 0 (nenhum sinal de acordar salvo) ou
valor positivo (um ou mais sinais de acordar salvos)
Duas operaes (generalizaes de sleep e wakeup)
Down decrementa (gasta um sinal de acordar), se o valor do
semforo maior que 0. Seno ser posto pra dormir.
Up incrementa o valor do semforo e um processo que esteja
dormindo pode ser escolhido para terminar o seu down.
As operaes sobre os semforos so atmicas e indivisvel.
Problema do produtor- consumidor