sist oper aula28 10
DESCRIPTION
ÂTRANSCRIPT
SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS
PROF. HORACIO RIBEIRO
Sistemas operacionais
Aplicações concorrentes:
Aplicações concorrentes compartilham recursos (pode acontecer efeitos indesjaveis- inconsistências)
Processos precisam se comunicar entre si Através de variáveis na memória principal Troca de mensagens
Processo grava
Processo Le
Buffer dados
sincronização
Especificações de concorrência
Notações para especificar pontos de sincronismos:
Fork ( dispara o processo) join (pt de controle)Programa
A; ......
Fork B;.....
Join B;
End.
Programa B;
........
End.
Especificações de concorrênciaParbegin e parend. (dijkstra )Cada comando é um processo
X:= sqrt (1024) + 35,4 *0,23 – 302/7;Program expressão; var x, temp1, temp2, temp3 : real; parbegin temp1:= sqrt(1024) temp2:= 35,4 * 0,23 temp3:= 302/7 parend; x := temp1 = temp2 d+ temp3; writenln x;End;
Compartilhar recursos
Compartilhara variáveis
Programa A; ......
.........
....
End.
Programa b; ......
.....
....
End.
Variável comum
Produz inconsistências durante o processamento
Exclusão mútua
Deve-se impedir que dois processos acessem o mesmo recursos simultaneamente.
Um processo deve esperar que o outro conclua antes de acessar o recurso. (mutual exclusion).
define-se a região critica do processo: quando ele reserva o recurso.
Isto é feito introduzindo-se um protocolo de entrada e outro de saída.
Região critica
Begin ........ entra-regiao-critica ( *protocolo de entrada*); .... região critica; ..... sai-região-critica (*protocolo de saída*) ...... end.
mecanismos
SinalizaçãoMonitores
Problemas:espera indefinida (em algum momento fará uso do recursos)
impedir que um processo atue dentro de sua própria região critica
Solução via hardware
Desabilitar interrupções: ante de entrar em sua região critica. Habilita ao terminar
Limitações: Compromete o sistema
Instrução Test and set Instruções indivisíveis Uso de semáforos 9variaveis de controle)
Soluções via software.
Existem diversos algoritmos para implementar exclusão mútua.
repeat enquanto vez= “b” faça .... (região critica.................. vez = “a”; enquanto vez = “a”............... Região critica) vez = “b”.
software
Limitações: são considera dois processos.Perde-se muito tempo pois o segundo
processo fica o tempo todo bloqueado.Se por acaso acontecer da variável não ser
setada o processo fica permanentemente bloqueado.
Exclusão mutua por software.
Segundo algoritmoUsa uma variável para cada processo que
indica se o processo esta ou não em sua região critica.
A cada momento verifica-se se esta ou não livre.
semáforos
Uma variável são pode ser manipulada por duas instruções: entra e sai (down up)
podem se com variáveis booleanas 0 ou 1 ou variáveis contadoras
exemplificar no quadro
Exclusão com monitores
Monitores são mecanismos de exclusão de alto nível
Suporte dos compiladores (o compilador introduz o mecanismo)
Variáveis globais
Procedimentos..........
MONITOR
Fila do monitor
Mecanismos de troca de mensagem
Mecanismo de comunicação e sincronização entre processos.
Existe um buffer para trocar mensagens: tem duas rotinas
SEND ( receptor, mensagem) RECEIVED (transmissor, mensagem)
Se implementa de duas forma: Direta o processo deve endereçar diretamente o
outro processo. (precisa identificar o processo –isto é um problema)
Comunicação indireta
É colocada uma área comparatilhada, onde processos colocam e retiram mensagens. O Buffer comum é conhecido como mailbox ou port.
Existe três formas de implementar A o emissor fica aguardando o receptor ler a mensagem Rendezvous o transmissor não fica bloqueado Forma assíncrona de comunicação (ninguém aguarda)
Deadlock
Um processo fica aguardando um recurso que nunca terá
É necessário ocorrer quatro condições: Exclusão mutua: o recurso são pode ser alocado a um
processo Espera por recurso Não liberação: o recurso não é liberado Espera circular
Prevenção de Deadlock
Exclusão mutua não existirAlocação totalPermitir retirar um recurso de um processoLiberar recursos após a sua imediata
utilização
Correção do deadlock
Eliminar liberando os recursosUsa-se prioridade para fazer a eliminação