O documento discute vários métodos de comunicação entre processos para evitar corridas, incluindo regiões críticas, exclusão mútua, dormir e acordar, semáforos, mutexes, futexes, monitores e troca de mensagens.
◤
Condições de Corrida
Condiçõesonde 2 ou mais processos estão processando
informações compartilhadas e o seus resultados dependem de
quem os executa e quando isso vai ocorrer. Para evitar erros,
devemos ter atenção no paralelismo, que devido ao aumento de
núcleos, se torna mais comum.
3.
◤
Regiões críticas
É ondeparte da memória que não pode ser alcançada por linhas de execução,
é acessada. Se 4 parâmetros forem cumpridos ela evita as condições de
corrida, são eles:
▪ Dois processos jamais podem ser simultâneos na mesma região;
▪ Sem suposições sobre o número ou a velocidade das CPUs;
▪ Processos fora de sua região não bloqueiam outros processos;
▪ Processos não são obrigado a esperar eternamente para entrar na região
crítica;
4.
◤
Exclusão Mutua comespera ocupada
Pode ser feita de várias maneiras, uma delas são tirando a
habilidade de interrupções tipo de variáveis trava, a solução de
Peterson e a de TSl. Entretanto a exclusão feita com espera
ocupada não é tão eficiente e alguns processos que não utilizam
corretamente suas variáveis podem corromper todo o sistema.
5.
◤
Dormir e Acordar
▪Funcionam em pares;
▪ Sem problemas com tempo de espera;
▪ Resultados esperados;
6.
◤
Dormir e Acordar
▪Sleep: é uma chamada que bloqueia o processo chamado;
▪ Wakeup: é a chamada que acorda o processo;
7.
◤
Semáforos
▪ Primeira vezutilizado foi em algo 68;
▪ Bom para problemas de sincronicidade;
▪ Evita problemas de corrida;
8.
◤
Semáforo
▪ Possui duasoperações Up e Down;
▪ Resolve problemas utilizando sinais salvo para usar no futuro;
9.
◤
Mutexes
▪ bons paragerenciar a exclusão mútua;
▪ o fáceis e eficientes de implementar;
◤
Monitores
▪ Down eWake Up
▪ Down verifica se o valor é maior do que zero, se for ele retira
um valor, gastando um acordar (wake up) armazenado. Se o
valor for zero, o processo é colocado para dormir sem terminar
o download até o momento.
12.
◤
Variáveis de Condição
▪Usadas em conjunto com wait e signal.
▪ Permite também que outros processos, antes bloqueados,
entrem no monitor.
▪ Para evitar dois processos ativos simultaneamente,
necessitamos de uma regra dizendo que ocorre apos o signal.
▪ Hansen teve a sacada de mestre…
13.
◤
Troca de mensagens
▪Esse método de comunicação entre processos usa duas
primitivas, send e receive, que, como semáforos e
diferentemente dos monitores, são chamadas de sistema em
vez de construções de linguagem.
▪ Mensagem especial de confirmação de recebimento de volta
▪ Retransmissão sequência consecutiva em cada mensagem
original.
14.
◤
Problema do produtorconsumidor com a
troca de mensagens
▪ Buffer Automático
▪ Endereço único
▪ Caixas postais
▪ Rendezvous