Sincronização de Processos (5) Troca de Mensagens



Documentos relacionados
processo internamente dadospara serem

Programação Concorrente

SISTEMAS DISTRIBUÍDOS

Sincronização de Processos (4) Monitores

Comunicação em Sistemas Distribuídos

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

Sistemas Distribuídos Modelo Cliente-Servidor

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos. Aleardo Manacero Jr.

Introdução ao Modelos de Duas Camadas Cliente Servidor

3. Comunicação em Sistemas Distribuídos

Nomes e Endereçamento. Nomes e Endereçamento. Paradigmas em Sistemas Distribuídos. Paradigmas em Sistemas Distribuídos

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

SISTEMAS DISTRIBUÍDOS

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação?

Sistemas distribuídos:comunicação


Permite o acesso remoto a um computador;

Revisão Ultima aula [1/2]

Disciplina de Sistemas Distribuídos. Sincronização em SD. Prof. M.Sc. Alessandro Kraemer Kraemer

Comunicação. Parte II

Sistemas Distribuídos

Programação de Sistemas

Programação de Sistemas

SISTEMAS OPERACIONAIS

Sistemas Distribuídos. Coulouris Capítulo 4

Sistemas Distribuídos 59. Sistemas Distribuídos 61. "Receive não-bloqueante:

Ciência de Computadores Sistemas Distribuídos e Móveis

Comunicação entre Processos

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010)

Arquitetura de Sistemas Operativos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sistemas Distribuídos Comunicação. Edeyson Andrade Gomes

Sistemas Distribuídos

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Sistemas Operacionais

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sistemas Distribuídos

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064


Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos

Sistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos

3 SCS: Sistema de Componentes de Software

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br

Sistemas Cliente-Servidor

Programação distribuída e paralela (C. Geyer) RPC 1

Sistemas de Arquivos. Gerenciamento de Espaço em Disco

Sistemas Operacionais

Arquitetura de Computadores II

Linguagem de Programação Introdução a Linguagem Java

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Sistemas Distribuídos Grupos

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Sistemas Distribuídos

Grupos de Processos (Comunicação Grupal)

PROVA DE CONHECIMENTOS ESPECÍFICOS PROGRAMADOR DE COMPUTADOR. Analise as seguintes afirmativas sobre os modelos de processos de software:

Distributed Systems Principles and Paradigms

Paradigma Cliente/Servidor

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Redes de Computadores. Camada de Transporte

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Série de Problemas - Sincronização com Semáforos

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Sincronização de Processos (1) Mecanismos de busy wait

REDES DE COMPUTADORES

Comunicação em Sistemas Distribuídos

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

Sistemas Operacionais

Sistemas Distribuídos e Redes de Sensores

ALua. asynchronous communication in Lua

9 - Sincronização e Comunicação entre Processos

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

Rede de Computadores

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

Fundamentos de Sistemas Operacionais. Processos. Prof. Edwar Saliba Júnior Março de Unidade Processos

Arquitetura de Sistemas Operativos

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br Roteiro. Componentes do Sistema

PLANO DE ENSINO-APRENDIZAGEM POR COMPETÊNCIAS

Relatorio do trabalho pratico 2

Remote Procedure Call. Programação distribuída e paralela (C. Geyer) RPC 1

Exclusão Mútua Distribuída

Sincronização. Cooperação entre Processos

Um cliente de cada vez:

Transcrição:

Sincronização de Processos (5) Troca de Mensagens

Passagem (Troca) de Mensagens Motivação: Semáforos e algoritmos de exclusão mútua são baseados no compartilhamento de variáveis. Isso implica no compartilhamento de memória física. Entretanto, em sistemas distribuídos, as máquinas formam unidades independentes (nós de uma rede), não existindo memória compartilhada entre os vários processos. Solução: Novo paradigma de programação ( message passage ), onde a sincronização e comunicação entre processos é baseada em (duas) novas primitivas: send e receive. 2 Sistemas Operacionais

Primitivas send (destination, message_buffer) Envia a mensagem armazenada em message_buffer para um processo destino ou para uma caixa postal. receive (source, message_buffer) Recebe uma mensagem de uma fonte específica, ou de qualquer fonte, e armazena-a em message_buffer. 3 Sistemas Operacionais

Questões de Projeto Uma série de novas questões surgem no cenário de troca de mensagens: Sincronização entre os processos; Endereçamento; Formato das mensagens; Disciplinas de filas; Etc. 4 Sistemas Operacionais

Sincronização (1) Blocking send, blocking receive : Emissor e receptor são bloqueados até que a mensagem seja entregue. Mecanismo conhecido como rendezvous (encontro). Nonblocking send, blocking receive : Emissor continua processando normalmente (p.ex., enviando novas mensagens). Receptor é bloqueado até a recepção da mensagem (ex: servidor). 5 Sistemas Operacionais

Sincronização (2) Nonblocking send, blocking receive (cont.) Esquema mais usado. Erros podem levar a uma situação em que um processo gera mensagens repetidamente, consumindo os recursos do sistema, incluindo tempo do processador e memória. Nonblocking send coloca no programador a responsabilidade de determinar se a mensagem foi ou não recebida (uso de mensagens de reconhecimento acknowledgment ). Com blocking receive o processo receptor pode ficar bloqueado eternamente se a mensagem enviada se perder (soluções: uso de timeout, uso de mais de uma fonte, etc.) 6 Sistemas Operacionais

Sincronização (3) Nonblocking send, nonblocking receive Nenhuma parte envolvida na comunicação precisa esperar. Com nonblocking receive o receptor nunca fica bloqueado eternamente, entretanto, existe o perigo da mensagem ser enviada após o processo receptor ter executado o receive correspondente, ou seja, a mensagem será perdida. 7 Sistemas Operacionais

Endereçamento (1) Endereçamento Direto: A primitiva send inclui um identificador específico do processo destino. A primitiva receive pode operar de duas formas: (i) requerendo, a priori, a identificação do processo transmissor; ou (ii) usando um parâmetro ( source ) para retornar a identificação do processo transmissor após o término da operação (ex: servidor de impressão, que aceita pedidos de impressão de quaisquer outros processos). 8 Sistemas Operacionais

Endereçamento (2) Endereçamento Indireto: As mensagens não são enviadas diretamente do transmissor para o receptor mas sim um local intermediário (filas) que temporariamente armazena as mensagens enviadas. Tal local é conhecido como mailbox. Assim, processos enviam mensagens para mailboxes e outros retiram mensagens dos mailboxes. Uma vantagem do endereçamento indireto é que, ao desacoplar o transmissor e receptor, uma grande flexibilidade no uso das mensagens é conseguida. 9 Sistemas Operacionais

Endereçamento (3) Endereçamento Indireto: relacionamentos entre transmissor e receptor Um-para-um: permite comunicação privativa. Muitos-para-um: útil para interação cliente-servidor. Neste caso, o mailbox é geralmente referenciado como port. Um-para-muitos: útil para aplicações de grupo (broadcast e multicast). Outras questões: Mailbox ownership: no caso de um port, ele é tipicamente criado e tem como dono o processo receptor. Para um mailbox genérico, o S.O. pode oferecer um serviço do tipo create_mailbox. Nesse caso, o criador é o dono. 10 Sistemas Operacionais

Endereçamento Indireto 11 Sistemas Operacionais

Formato da Mensagem 12 Sistemas Operacionais

#define N 100 /* number of slots in the buffer */ void producer(void) { int item; message m; /* message buffer */ while (TRUE) { produce_item(&item); * generate someth. to put in buffer */ receive(consumer, &m); /* wait for an empty to arrive */ build_message(&m, item); /* construct a message to send */ send(consumer, &m); }} /* send item to consumer */ void consumer(void) { int item, i; message m; for (i = 0; i < N; i++) send(producer, &m); /* send N empties */ while (TRUE) { receive(producer, &m); /* get message containing item */ extract_item(&m, &item); /* extract item from message */ send(producer, &m); /* send back empty reply */ consume_item(item); }} /* do something with the item */ Problema do Produtor- Consumidor com Troca de Mensagens 13 Sistemas Operacionais

Referências Silberschatz A. G.; Galvin P. B.; Gagne G.; ''Fundamentos de Sistemas Operacionais'', 6a. Edição, Editora LTC, 2004. Seção 4.5 A. S. Tanenbaum, ''Sistemas Operacionais Modernos'', 2a. Edição, Editora Prentice-Hall, 2003. Seção 2.3.8 Deitel H. M.; Deitel P. J.; Choffnes D. R.; Sistemas Operacionais, 3ª. Edição, Editora Prentice-Hall, 2005 Seção 3.5.2 14 Sistemas Operacionais