◤
Comunicação
entre Processos
Arthur Elzinga e Rafael Pessoa
◤
Condições de Corrida
Condições onde 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.
◤
Regiões críticas
É onde parte 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;
◤
Exclusão Mutua com espera 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.
◤
Dormir e Acordar
▪ Funcionam em pares;
▪ Sem problemas com tempo de espera;
▪ Resultados esperados;
◤
Dormir e Acordar
▪ Sleep: é uma chamada que bloqueia o processo chamado;
▪ Wakeup: é a chamada que acorda o processo;
◤
Semáforos
▪ Primeira vez utilizado foi em algo 68;
▪ Bom para problemas de sincronicidade;
▪ Evita problemas de corrida;
◤
Semáforo
▪ Possui duas operações Up e Down;
▪ Resolve problemas utilizando sinais salvo para usar no futuro;
◤
Mutexes
▪ bons para gerenciar a exclusão mútua;
▪ o fáceis e eficientes de implementar;
◤
Futexes
▪ Implementa travamento básico;
▪ Semelhante ao Mutex;
▪ Evita entrar no Núcleo;
◤
Monitores
▪ Down e Wake 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.
◤
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…
◤
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.
◤
Problema do produtor consumidor com a
troca de mensagens
▪ Buffer Automático
▪ Endereço único
▪ Caixas postais
▪ Rendezvous
◤
Barreira

Comunicacao entre Processos

  • 1.
  • 2.
    ◤ 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;
  • 10.
    ◤ Futexes ▪ Implementa travamentobásico; ▪ Semelhante ao Mutex; ▪ Evita entrar no Núcleo;
  • 11.
    ◤ 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
  • 15.