Page 1

Sistemas operacionais SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS PROF. HORACIO RIBEIRO


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

sincronização Buffer dados

Processo Le


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ência  Parbegin

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; ...... .... .....

Programa b; ...... Variável comum

.... End.

..... .... End.

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ção  Monitores  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 algoritmo  Usa 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)

Fila do monitor

M O N I T O R

Variáveis globais Procedimentos... .......


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 existir  Alocação total  Permitir retirar um recurso de um processo  Liberar recursos após a sua imediata utilização


Correção do deadlock  Eliminar liberando os recursos  Usa-se prioridade para fazer a eliminação

sist oper aula28 10  
Read more
Read more
Similar to
Popular now
Just for you