Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouDomingos Mendonça Garrau Alterado mais de 8 anos atrás
1
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner
2
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 2 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.5 Escalonamento
3
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 3 Discussão Até agora vimos troca de mensagens em: –Baixo nível: semáforos; –Alto nível usados em algumas linguagens de programação: monitores; Nenhuma dessas soluções possibilita a comunicação entre processos em diferentes máquinas; –Ex.: chat Como solucionar esse problema?
4
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 4 Troca de Mensagens Suponha que temos os processos S(Sender) e R(Receiver); Para que os dois se comuniquem, precisamos de um link (lógico) entre eles; send e receive: chamadas ao sistema; –send(destino, &mensagem); –receive(fonte, &mensagem);
5
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 5 Troca de Mensagens Comunicação direta: –Processo S: send(R, &mensagem); –Processo R: receive(S, &mensagem); Comunicação indireta: –Imagine um processo rodando no servidor de email, chamado M; –Processo S: send(M, &mensagem); –Processo R: receive(M, &mensagem); –Esse exemplo pode ser generalizado de M (mail-box) para P (porta);
6
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 6 Troca de Mensagem Quanto à sincronização, a troca de mensagems pode ser: Síncrona (ou bloqueante): –O Sender enviar uma mensagem, e bloqueia, até o Receiver receber; –O Receiver espera uma mensagem do Sender; Assíncrona: –O Sender envia a mensagem e vai para a próxima instrução; –O Receiver tenta receber uma mensagem. Se não houver, recebe null
7
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 7 Troca de Mensagens Diferentes combinações podem ser feitas entre comunicação síncrona e assíncrona; Quando os dois processo se comunicam de forma síncrona, dizemos que eles fazem um rendezvous (encontro, em francês) = “randevu”;
8
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 8 Desafio Como seria o problema do produtor- consumidor com troca de mensagens?
9
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 9 Troca de Mensagens O problema do produtor-consumidor com N mensagens
10
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 10 Problemas E se uma mensagem for perdida na rede? –Solução: receptor envia mensagem de confirmação de recebimento (acknowledgement - ack); E se o ack for perdido? –Solução: coloca um número de seqüência na mensagem;
11
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 11 Problemas Como saber que o receptor é quem o emissor espera que seja? (problema de segurança - autenticação)
12
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 12 Dissecando troca de mensagens Em toda comunicação entre duas máquinas distintas, é necessário criar 2 pares de sockets; Sockets: ip + porta Ex.: –processo p1 (porta 5000), máquina 192.168.0.1 –processo p2 (porta 10000), máquina 192.168.0.2 –Socket 1 [192.168.0.1:5000] –Socket 2 [192.168.0.2:10000]
13
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 13 Programa simulador troca de mensagens\Message.html
14
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 14 Problema com Sockets Não há uma estrutura nos dados de comunicação dos sockets; Tudo são apenas bytes; Isso significa que o receptor precisa de antemão transformar os bytes na estrutura que ele espera; Os programadores querem uma abstração maior de comunicação do que transformar bytes em estruturas;
15
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 15 RPC – Remote Procedure Call Maneira de chamar procedimentos/funções remotamente; A comunicação é de mais alto nível (métodos e parâmentros) do que via sockets (apenas bytes, sem valor semântico);
16
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 16 RPC Objeto Cliente Objeto Servidor Rede Stub Skeleton
17
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 17 RMI Remote Method Invocation Forma semelhante a RPC de comunicação entre objetos Java; Diferenças básicas: –RPC suporta programação procedural, o que significa que apenas procedimentos e funções podem ser invocados. RMI suporta apenas chamada a métodos em objetos remotos; –Em RPC os parâmetros são estruturas de dados ordinárias (struct, int, float). Em RMI, os parâmetros também podem ser objetos;
18
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 18 Barreira Comunicação entre vários processos, normalmente fazendo parte de um mesmo grupo; Os processos só podem passar para uma nova fase quando todos terminarem a anterior;
19
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 19 Barreiras Uso de uma barreira a)processos se aproximando de uma barreira b)todos os processos, exceto um, bloqueados pela barreira c)último processo chega, todos passam
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.