aso – machado/maia – complem. por sidney lucena (unirio) arquitetura de sistemas operacionais...
TRANSCRIPT
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
Arquitetura de Sistemas OperacionaisArquitetura de Sistemas OperacionaisFrancis Berenger Machado / Luiz Paulo MaiaFrancis Berenger Machado / Luiz Paulo Maia
Complementado por Sidney Lucena (Prof. UNIRIO)Complementado por Sidney Lucena (Prof. UNIRIO)
Capítulo 7Capítulo 7Sincronização e ComunicaçãoSincronização e Comunicação
entre Processosentre Processos
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Sincronização e Comunicação
o Numa aplicação concorrente, é natural que processos precisem comunicar entre si
Implementação através de mecanismos como variáveis compartilhadas ou trocas de mensagens
Processos precisam ter sua execução sincronizada através de mecanismos do SO
o Exemplo com buffer de comunicação:
Processo só poderá gravar os dados se buffer estiver liberado
Processo só poderá ler os dados quando estes estiverem disponíveis no buffer
7/1
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Sincronização e Comunicação
7/2
Processog ravad o r
Processoleito r
d ado
Sin cron ização
leitura
g ra vaçã o
Bu ffer
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Sincronização e Comunicação
o Mecanismos de sincronização:
Garantem a comunicação entre processos concorrentes
Garantem o acesso a recursos compartilhados
Garantem a integridade e a confiabilidade na execução de aplicações concorrentes
7/3
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Concorrência em Programas
o Cada linguagem tem sua notação para especificar as partes do programa que devem ser executadas concorrentemente
Fork e Join (Conway, Dennis e Van Horn, 1963/66)
o Fork <X> – dispara o processo X
o Join <X> – interrompe execução até que processo X termine (sincroniza processos)
ParBegin/CoBegin e ParEnd/CoEnd (Dijkstra, 1965)
o Cada comando executado concorrentemente com um processo para cada
7/4
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Concorrência em Programas
7/5
Pro cessop rincip a l
Pro cessop rincip a l
Pro cesso 1 Pro cesso 2 Pro cesso n
PARBEGIN Comando_1; Comando_2; . . Comando_n;PAREND
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Compartilhamento de Recursos
o Arquivos compartilhados
Ex: atualizações em um mesmo saldo bancário
Caso o processo não “trave” o arquivo com saldo, poderá haver inconsistência
o Variáveis compartilhadas
Um processo só poderá operar com a variável após processo anterior completar sua operação
Análogo ao caso de arquivos compartilhados
o Estes problemas são chamados de race conditions
7/6
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Exclusão Mútua
o Solução mais simples
o Impede que dois ou mais processos acessem simultaneamente um mesmo recurso
Quando um processo estiver acessando o recurso, demais processos que desejam acessá-los devem ficar em espera
Parte do código que faz acesso ao recurso é denominada região crítica
o Uma vez garantida a execução mutuamente exclusiva das regiões críticas, resolve-se problemas de compartilhamento 7/7
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Exclusão Mútua
o Mecanismos que implementam exclusão mútua se valem de protocolos de acesso à região crítica
Sempre que um processo desejar executar instruções de uma região crítica, ele deverá executar um protocolo de entrada nesta região
Sempre que o processo desejar sair da região crítica, ele deverá executar um protocolo de saída desta região
o Protocolo de entrada indica que há processo executando instruções na região crítica
o Protocolo de saída sinaliza a liberação da região crítica para outros processos
7/8
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Exclusão Mútua
o Duas situações indesejadas devem ser evitadas:
Starvation ou espera indefinida
o Processo nunca consegue entrar na região crítica, ficando eternamente em espera
o Pode ocorrer devido a critérios do SO para seleção do processo que vai entrar numa RC que tenha sido liberada
Critérios baseados em prioridade ou em aleatoriedade
Sistema FIFO, por exemplo, resolve o problema
7/9
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Exclusão Mútua
o Outra situação indesejada que deve ser evitada:
Processo fora da RC impede que outros processos entrem na RC
o Recurso está livre, mas alocado a um determinado processo
o Reduz grau de compartilhamento
o Para implementar a exclusão mútua, são usadas soluções de hardware e de software
7/10
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Exclusão Mútua
o Soluções de hardware:
Desabilitar de interrupções
o Processo desabilita todas as interrupções antes de entrar na RC, reabilitando-as após deixá-la
o Não há mudança de contexto enquanto na RC
o Solução simples mas com limitações:
Multiprogramação fica comprometida
Ineficiente com múltiplos processadores
Interessante para o kernel do SO
7/11
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Exclusão Mútua
o Soluções de hardware:
Instrução Test-and-Set
o Instrução “de máquina” que permite ler uma variável, armazená-la em outra área e atribuir novo valor à variável
o Indivisível, executada sem interrupção
o Garante que dois ou mais processos não manipulem uma variável compartilhada simultaneamente
o Usa variável lógica global chamada Bloqueio
7/12
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
7/13
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Exclusão Mútua
o Soluções de software:
Diversos algoritmos para implementar exclusão mútua através de software
Primeiras soluções abrangiam apenas dois processos e apresentavam problemas, posteriormente sanados
o Algoritmo de Peterson, inicialmente aplicado a dois processos, evoluído para N processos
Problema da solução por software:
o Espera ocupada! (busy wait)
o Resolvido c/ Semáforos e Monitores7/14
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Exclusão Mútua
o Soluções de software:
Primeiro algoritmo
o Usa variável global para sincronizar processos
o Só funciona para dois processos
o Processos são sempre alternados
Um processo fica bloqueado se o outro não entrar na RC
o Se um processo travar, o outro fica bloqueado aguardando entrar na RC
7/15
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Exclusão Mútua
o Soluções de software:
Segundo algoritmo
o Funciona somente com dois processos
o Usa variável de condição para cada processo, informando se processo está ou não na RC
o Processos não necessitam ser alternados
o Se um processo travar antes de alterar variável, o outro fica bloqueado aguardando entrar na RC
o Não garante exclusão mútua!7/16
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Exclusão Mútua
o Soluções de software:
Terceiro algoritmo
o Funciona somente com dois processos
o Atribuição da variável de condição é feita antes do loop de teste
o Processos não necessitam ser alternados
o Se um processo travar antes de alterar variável, o outro fica bloqueado
o Garante exclusão mútua, mas ambos processos podem ficar bloqueados 7/16
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Exclusão Mútua
o Soluções de software:
Quarto algoritmo
o Funciona somente com dois processos
o Como o terceiro, mas introduz tempo aleatório para setar váriável de condição
o Processos não necessitam ser alternados
o Se um processo travar antes de alterar variável, o outro fica bloqueado
o Garante exclusão mútua, mas ambos processos podem ficar bloqueados durante algum tempo
7/17
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Exclusão Mútua
o Soluções de software:
Algoritmo de Peterson
o Solução para problemas anteriores, foi generalizado para N processos (Hofri, 1990)
o Além das variáveis de condição, usa variável “Vez” para resolver conflitos
Antes de acessar a RC, sinaliza este desejo mas cede a vez para outro processo, depois fica em loop aguardando sua vez
Para N processos, também há o algoritmo do Padeiro (Lamport, 1974)
7/17
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Sincronização Condicional
o Situação onde o acesso à RC exige sincronização vinculada a uma condição de acesso
Recurso disponível se condição satisfeita, processos bloqueados enquanto isso
Ex: comunicação via leitura/escrita em buffer
o Conhecido como problema produtor/consumidor ou buffer limitado
o Mantém-se o problema da espera ocupada
o Obs: algoritmo apresentado não considera necessidade de exclusão mútua da variável “Cont”
7/18
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Semáforos
o Proposto por Dijkstra em 1965
Mecanismo de sincronização para implementar exclusão mútua e sincronização condicional
Principal mecanismo usado em aplicações concorrentes
o Composto por uma variável inteira não negativa manipulada somente pelas instruções UP e DOWN
UP incrementa de 1, DOWN decrementa de 1
UP e DOWN são instruções indivisíveis
o Executar DOWN num semáforo com valor 0 coloca o processo na fila de espera
7/19
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Semáforos
o Classificados como binários ou contadores
Semáforos binários (MUTEX, de MUTual EXclusion) só podem assumir 0 ou 1
Semáforos contadores podem assumir qualquer valor inteiro não negativo
o Exclusão mútua implementada por um MUTEX associado ao recurso compartilhado
Vantagem: ausência de espera ocupada
DOWN e UP funcionam como protocolos de entrada e saída na RC, respectivamente
MUTEX em 1 indica recurso disponível 7/20
Arq
uite
tura
de
Sis
tem
as O
pera
cion
ais
– M
acha
do/M
aia
7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos Utilização do Semáforo Binário na Exclusão Mútua
7/21
Fila de esperad e processos
Processo acessaa reg iã o cr ítica
Processo d eseja en tra rn a reg ião cr ítica
DOW
N (S=
0)
DOW
N (S
>0)
U P (S) - p rocesso sa id a reg ião cr ítica
Libe ra processod a fi la de espe ra
MUTEX é iniciado com valor 1
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Semáforos
o Sincronização condicional para operação de E/S
Semáforo iniciado com 0
Pedido de operação via DOWN
Completada a operação, rotina faz UP
o Para o problema produtor/consumidor
Usa 3 semáforos:
o Um MUTEX, para fazer exclusão mútua, iniciado com 1
o Dois contadores, para sincronização condicional 7/22
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Semáforos
o Problema produtor/consumidor:
Mutex usado para a RC que permite gravação e leitura (logo, mutuamente exclusivas)
Semáforos contadores representam posições livres (“Vazio”) para serem gravadas, e posições ocupadas (“Cheio”) para serem lidas
o Vazio = 0, processo produtor em espera
o Cheio = 0, processo consumidor em espera
“Vazio” iniciado com tamanho do buffer
“Cheio” iniciado com 0
7/23
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Semáforos
o Semáforos contadores são úteis para problemas de sincronização condicional com processos concorrentes disputando pool de recursos
Semáforo iniciado com número total de recursos do pool
Processo que deseja alocar recurso faz DOWN
Processo que libera recurso faz UP
Semáforo em 0 indica que não há mais recursos disponíveis no pool e coloca processos que fizeram DOWN em espera7/23
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Problema do Barbeiro
o Na barbearia há um barbeiro, uma cadeira de barbeiro e 5 para espera
o Se um cliente chega e o barbeiro está trabalhando, ele senta se houver cadeira vaga, senão vai embora
o Se não há nenhum cliente para atender, barbeiro senta na cadeira e dorme até novo cliente chegar
7/24
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Problema dos Filósofos
o Exemplo clássico de sincronização de processos
o Também chamado de “Dining Philosophers”
Mesa com 5 pratos e 5 garfos
Filósofos podem sentar, comer e pensar
Quando filósofo para de pensar e deseja comer, precisa usar dois garfos, à direita e à esquerda
Se todos os filósofos estiverem segurando um garfo cada, nenhum deles come (Deadlock!) 7/25
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Problema dos Filósofos
o Existem várias soluções, dentre elas:
Permitir que apenas 4 filósofos sentem à mesa simultaneamente
Permitir que um filósofo um garfo apenas quando o outro estiver disponível
Permitir que um filósofo ímpar pegue primeiro o seu garfo da esquerda e depois o da direita, enquanto um filósofo par pegue primeiro o garfo da direita e depois o da esquerda
7/26
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Monitores
o Mecanismos de sincronização de alto nível
o Formado por procedimentos e variáveis encapsuladas dentro de um módulo
o Diferenças entre monitores e semáforos:
Semáforos são mecanismos não estruturados implementados pelo desenvolvedor
Monitores são mecanismos estruturados implementados pelo compilador
7/27
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Monitores
o Um monitor é definido especificando-se um nome, declarando-se variáveis locais, um conjunto de procedimentos e um código de inicialização
o Um processo que deseje acessar determinada RC através de um monitor fará chamada a um dos procedimentos do monitor
Caso outro processo já esteja executando qualquer um dos procedimentos, ele aguarda sua vez na fila
7/28
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Estrutura do Monitor
7/29
D ecla ração deva riáveis g lo ba is
Proced im entos
Fila de entra da
In icia lizaçãod e va r iáveis
Proc. 1
Proc. 2
Proc. n
Mo
nit
or
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Monitores
o O uso de monitores facilita o desenvolvimento de aplicações concorrentes
Exclusão mútua é implementada de forma automática
o Somente um processo pode estar executando qualquer um dos procedimentos do monitor
Variáveis globais do monitor são visíveis apenas aos procedimentos de sua estrutura, inacessíveis externamente
Inicialização das variáveis por código no monitor, apenas na ativação do programa principal
7/30
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Exclusão Mútua com Monitores
o Regiões críticas definidas como procedimentos no monitor, exclusão mútua entre eles por conta do compilador
o Comunicação com o monitor unicamente através da chamada de seus procedimentos e dos parâmetros passados
7/31
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Sincronização Condicional com Monitores
o Se vale de variáveis especiais de condição para associar a execução dos procedimentos do monitor
o Variáveis de condição são manipuladas por intermédio das funções WAIT e SIGNAL
Instrução WAIT faz com que o processo seja colocado na respectiva fila de espera e aguarde que a condição seja satisfeita
Processo sai da fila de espera quando outro processo usar a instrução SIGNAL para sinalizar que a condição de espera foi satisfeita
Se SIGNAL for executado e não houver processo em wait, nada ocorrerá
7/32
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Estrutura do Monitor com Variáveis de Condição
7/33
D ecla ração deva riáveis g lo ba is
Proced im ento s
Fila de entra da
In icia lizaçãod e va r iáveis
Proc. 1
Proc. 2
Proc. n
Mo
nit
or
F ila s de esp era
C o n diçã o C 1
C o n diçã o C 2
C o n diçã o C n
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Transmissão de Mensagem
7/34
Pro cessotran sm isso r
Pro cessorecep to r
SEN D REC EIV E
C an a l d e co m u nicação
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Comunicação Direta e Indireta
7/35
Pro cesso A Pro cesso B
Pro cesso A Pro cesso B
M a ilb oxo u Po rt
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Troca de Mensagens
o Forma síncrona:
Processo transmissor fica esperando que o processo receptor leia a mensagem
Processo receptor fica aguardando que processo transmissor mande a mensagem
o Forma assíncrona:
Processos não ficam bloqueados à espera de mensagem
o Uso de buffers
7/36
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Deadlock
o Situação onde um processo aguarda indefinidamente por um recurso que nunca estará disponível ou aguarda por um evento que nunca irá ocorrer
o Pode ser representado por ciclos num diagrama de grafo
Nós simbolizam processos e recursos
Aresta que sai do processo X e chega ao recurso Y indica que X solicita Y
Aresta que sai do recurso Y e chega no processo X indica que Y está alocado a X
7/37
Arq
uite
tura
de
Sis
tem
as O
pera
cion
ais
– M
acha
do/M
aia
7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos Deadlock – Espera Circular
7/38
Recu rso 2 Recu rso 1
Processo A
Processo B
Processo Aso licita oRecu rso 2
Recu rso 1a loca do aoProcesso A
Recu rso 2a loca do aoProcesso B
Processo Bso licita oRecu rso 1
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Deadlock
o Condições simultâneas para ocorrer deadlock:
Exclusão mutua: Cada recurso só pode estar alocado a um único processo por vez
Espera por recurso: Um processo, apesar dos recursos alocados, pode estar esperando por novo recurso
Não-preempção: recurso não é liberado de um processo devido à solicitação do mesmo por outro processo
Espera circular: processo pode ter que esperar por um recurso alocado a outro processo e vice-versa
7/39
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Deadlock
o Prevenção de deadlock:
Evitar que as condições para deadlock ocorram simultaneamente
Evitar que pelo menos uma das condições para deadlock ocorra
o Forçar o processo a ter apenas um recurso por vez (evita a espera circular)
o Permitir preempção
o Processos que possuem recurso não podem solicitar outro recurso
o Compartilhamento de recursos (!) 7/40
AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos
Deadlock
o Detecção de deadlock:
Se dá através da verificação de espera circular
o Correção de deadlocks:
Eliminação de todos os processos envolvidos no deadlock
Eliminação de apenas um dos processos envolvidos no deadlock
Liberação de apenas alguns recursos alocados aos processos em deadlock
7/41