sist oper aula28 10

Post on 08-Mar-2016

231 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

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

top related