sist oper aula28 10

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

Upload: horacio-ribeiro

Post on 08-Mar-2016

231 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: sist oper  aula28 10

SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS

PROF. HORACIO RIBEIRO

Sistemas operacionais

Page 2: sist oper  aula28 10

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

Page 3: sist oper  aula28 10

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.

Page 4: sist oper  aula28 10

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;

Page 5: sist oper  aula28 10

Compartilhar recursos

Compartilhara variáveis

Programa A; ......

.........

....

End.

Programa b; ......

.....

....

End.

Variável comum

Produz inconsistências durante o processamento

Page 6: sist oper  aula28 10

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.

Page 7: sist oper  aula28 10

Região critica

Begin ........ entra-regiao-critica ( *protocolo de entrada*); .... região critica; ..... sai-região-critica (*protocolo de saída*) ...... end.

Page 8: sist oper  aula28 10

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

Page 9: sist oper  aula28 10

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)

Page 10: sist oper  aula28 10

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

Page 11: sist oper  aula28 10

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.

Page 12: sist oper  aula28 10

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.

Page 13: sist oper  aula28 10

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

Page 14: sist oper  aula28 10

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

Page 15: sist oper  aula28 10

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)

Page 16: sist oper  aula28 10

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)

Page 17: sist oper  aula28 10

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

Page 18: sist oper  aula28 10

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

Page 19: sist oper  aula28 10

Correção do deadlock

Eliminar liberando os recursosUsa-se prioridade para fazer a eliminação