Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouJoão Guilherme Santiago Eger Alterado mais de 8 anos atrás
1
SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS PROF. HORACIO RIBEIRO Sistemas operacionais
2
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
3
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.
4
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;
5
Compartilhar recursos Compartilhara variáveis Programa A;................... End. Programa b;............... End. Variável comum Produz inconsistências durante o processamento
6
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. define-s Isto é feito introduzindo-se um protocolo de entrada e outro de saída.
7
Região critica Begin........ entra-regiao-critica ( *protocolo de entrada*);.... região critica;..... sai-região-critica (*protocolo de saída*)...... end.
8
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
9
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)
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”.
11
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.
12
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.
13
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
14
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.......... MONITORMONITOR Fila do monitor
15
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)
16
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)
17
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
18
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
19
Correção do deadlock Eliminar liberando os recursos Usa-se prioridade para fazer a eliminação
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.