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

sist oper aula28 10

Mar 08, 2016

Download

Documents

Horacio Ribeiro

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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