Troca de Mensagens n Programao concorrente Baseada em
Troca de Mensagens n Programação concorrente · Baseada em acesso a variáveis compartilhadas · Programas tem de executar em hardware em que os processos (e processadores) compartilham memória
Troca de Mensagens n Programação distribuída · Normalmente rodam em arquiteturas com memória distribuída, com vários processadores · Processadores compartilham apenas acesso a uma rede de comunicação · processos se comunicam enviando mensagens entre si · exemplo: redes de computadores.
Troca de Mensagens · Uso de primitivas de comunicação para envio (send) e recebimento (receive) de mensagens · Pederiam ser implementadas de forma semelhante a acesso a variáveis compartilhadas, mas seria pouco eficiente · Na pratica, essas operações incluem alguma forma de sincronização.
Troca de Mensagens · Processos compartilham canais de comunicação. · Esses canais são abstrações da conexão física existente: abstraem tempo e erros de comunicação. · Uso de operações send e receive · A sincronização ocorre, visto que um processo não pode receber uma mensagem sem que outro tenha enviado. · Não há variáveis compartilhadas!
Troca de Mensagens · Várias formas de dar nomes aos canais, de usa-los e de sincronizar a comunicação · Canais podem ser globais a todos os processos, podem ser direcionados, podem conectar dois ou mais processos · Comunicação pode ser síncrona (bloqueante) ou assíncrona (não bloqueante)
Comunicação síncrona n n n envio da mensagem é ação atômica participação dos dois processos sincronização da execução dos dois processos o primeiro a chegar espera pelo outro exemplo: telefone
Comunicação assíncrona n n n mensagem enviada sem bloqueio recebimento com/sem bloqueio buffering se buffer estiver cheio o processo poderá ser bloqueado Exemplo: correio
Identificação de processos n Telefone: · linha dedicada vs. Linha chaveada n Quadro de avisos · qualquer um escreve/lê
Identificação de processos n Canais dedicados são mais eficientes · mensagem enviada sem custo de decifrar endereços · modificação no sistema exige mudança no código fonte
Identificação de processos n Sem identificação de processos a flexibilidade é ainda maior · adicionar, remover, modificar processos dinamicamente
Fluxo de dados n n comunicação em uma direção ou nas duas direções Sistemas assíncronos usam fluxo unidirecional em sistemas síncronos é criado um canal de comunicação Eficiência
Criação de processos n n Processos criados no início da execução ou dinamicamente? Criação estática mais eficiente · embedded systems Þconfiguração fixa Þmelhor previsão de performance
Razões para criar processos dinamicamente n Flexibilidade · ex: terminais n Uso dinâmico de recursos · alguns recursos são usados apenas em algumas fases do programa n Balanceamento de carga · ex: aumento na demanda por certos processos
O que iremos estudar n Programação distribuída através de · Troca de mensagens assíncronas · Troca de mensagens síncronas · Chamada remota de procedimentos (RPC) e rendezvous. n n Todas as alterantivas são equivalentes. Cada uma é melhor que a outra para certos tipos de problemas.
Tipos de processos em programas distribuídos n n Filtros Clientes Servidores Peers – coleções de processos idênticos
- Slides: 15