A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Troca de Mensagens Programação concorrente

Apresentações semelhantes


Apresentação em tema: "Troca de Mensagens Programação concorrente"— Transcrição da apresentação:

1 Troca de Mensagens 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

2 Troca de Mensagens 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.

3 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.

4 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!

5 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)

6 Comunicação síncrona 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

7 Comunicação assíncrona
mensagem enviada sem bloqueio recebimento com/sem bloqueio buffering se buffer estiver cheio o processo poderá ser bloqueado Exemplo: correio

8 Identificação de processos
Telefone: linha dedicada vs. Linha chaveada Quadro de avisos qualquer um escreve/lê

9 Identificação de processos
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

10 Identificação de processos
Sem identificação de processos a flexibilidade é ainda maior adicionar, remover, modificar processos dinamicamente

11 Fluxo de dados 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

12 Criação de processos 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

13 Razões para criar processos dinamicamente
Flexibilidade ex: terminais Uso dinâmico de recursos alguns recursos são usados apenas em algumas fases do programa Balanceamento de carga ex: aumento na demanda por certos processos

14 O que iremos estudar Programação distribuída através de
Troca de mensagens assíncronas Troca de mensagens síncronas Chamada remota de procedimentos (RPC) e rendezvous. Todas as alterantivas são equivalentes. Cada uma é melhor que a outra para certos tipos de problemas.

15 Tipos de processos em programas distribuídos
Filtros Clientes Servidores Peers – coleções de processos idênticos


Carregar ppt "Troca de Mensagens Programação concorrente"

Apresentações semelhantes


Anúncios Google