Comunicação entre processos
Comunicação entre Processos
Pipes
Sockets
Java RMI
Comunicação entre Processos
Processos e threads interagem para trabalhar conjuntamente em um sistema
Trocam dados / mensagens
Utilizam os serviços de comunicação fornecidos pela máquina e pelo S.O.
Seguem protocolos de comunicação para que possam entender uns aos outros
2
1
Comunicação entre Processos
Protocolos
Estabelecem caminhos virtuais de comunicação entre processos / threads
Duas entidades precisam usar os mesmos protocolos para trocar informações
Protocolo
Meio de Transmissão
3
Comunicação entre Processos
Protocolos
Com licença…
Pede conexão
Pois não…
Aceita conexão
Que horas são?
Envia mensagem
São 8 horas.
Confirma recepção
Obrigado!
Fecha conexão
Libera conexão
De nada.
tempo
4
2
Comunicação entre Processos
Serviços de comunicação
Serviço sem Conexão: cada unidade de dados é enviada independentemente das demais
Serviço com Conexão: dados são enviados através de um canal de comunicação
Canal de Comunicação
5
Comunicação entre Processos
Características dos serviços de comunicação entre processos/threads:
Abrangência: local ou remota
Participantes: 1
1, 1
N ou M
N
Tamanho das mensagens: fixo ou variável; limitado ou não
Sincronismo: comunicação síncrona, assíncrona ou semi-síncrona
6
3
Comunicação entre Processos
APIs de comunicação
Permitem que aplicações troquem dados
Fornecem primitivas de comunicação que podem ser chamadas a partir do código
Provêem acesso aos serviços de comunicação, que podem assim ser usados pelas aplicações
Programa
API
S.O.
7
Comunicação entre Processos
APIs de Comunicação de Sist. Operacionais
Mecanismos fornecidos pelos S.O.’s permitem enviar mensagens
(trechos de memória) de um processo a outro
Alguns S.O.’s permitem que sejam criadas áreas de memória compartilhadas entre dois ou mais processos
P2
P1
P1
memória
P2
88
4
Comunicação entre Processos
Exemplos de APIs de comunicação:
Pipes: canais de comunicação locais
Sockets: portas