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

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

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner.

Apresentações semelhantes


Apresentação em tema: "Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner."— Transcrição da apresentação:

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


Carregar ppt "Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner."

Apresentações semelhantes


Anúncios Google