Sincronização de Processos (5)

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Operacionais Sincronismo e Comunicação entre processos
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Sincronização de Processos (1)
Sistemas operacionais
Sistemas distribuídos
Modelos de Comunicação em Sistemas Distribuídos
RPC Remote Procedure Call
Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação
Monitores.
Capítulo 7: Deadlocks.
Sistemas Operacionais II
Sistemas Operacionais
TCP Serviço de Transporte Confiável
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aula.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aulas.
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Sincronização de Processos (4)
Sincronização de Processos (3) Exercícios - Semáforos
Gerência de Memória.
Sistemas de Arquivos.
Inter-process Communication (IPC) Comunicação entre processos
Processos Conceitos Básicos.
Estruturas de Controle
SVCs para Controle de Processos no Unix
Gerência de Memória Paginação
SVCs para Controle de Processos no Unix
Sincronização de Processos (1)
Sincronização de Processos (3)
Gerência de Memória Algoritmos de Substituição de Páginas
Sincronização de Processos (5) - Monitores -
Sincronização de Processos (6) - Troca de Mensagens -
Tecnologia em Redes de Computadores
Sincronização e Comunicação entre Processos
Sistemas Operacionais
Unidade 3 Controle de Concorrência
Programação Avançada Processos, Threads e IPC
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 27 (1) Programação com MPI Tópicos: Modelo de Programação Funções de Ambiente Funções Básicas.
Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação.
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Sistemas Distribuídos
Sistemas Operacionais Prof. Galvez. PROBLEMA DE SEÇÃO CRITICA.
Sistemas Operacionais
Capítulo 7: Deadlocks.
Troca de Mensagens Assíncronas n Canais de comunicação são filas ilimitadas de mensagens. n Processos inserem elementos nessa flia através de comandos.
Redes e Sistemas Distribuídos II – Cód
Semáforos J2SE 5.0 Estudo da API e comparação com definição clássica Gustavo Frainer Rômulo Rosinha
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Sistemas Distribuídos
Semáforos n Variáveis compartilhadas são globais n Acesso a variáveis ocorre em procedimentos, mas podem estar espalhados pelo programa n Exige consulta.
Sistemas operacionais
Troca de Mensagens Programação concorrente
Capítulo 4: Processos.
Sistemas Distribuídos Aula 05 – Programação Multithread/Paralela
Video Capítulo 7: Sincronização de Processos. Silberschatz, Galvin and Gagne  Video Operating System Concepts Assuntos n Cenário n O problema.
Modelos de Comunicação em Sistemas Distribuídos
Modelos de Comunicação em Sistemas Distribuídos
Exclusão Mútua com Espera Ociosa (1)
Sistemas Distribuídos
Passagens de Mensagens Prof. Dr. Norian Marranghello
Protocolos de Comunicação e Passagem de Mensagens
Comunicação Interprocesso Condições de Disputa (corrida)
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
Redes de Computadores Prof. Msc. Moisés Pereira Bastos.
Sistemas Operacionais Sincronização e Comunicação Introdução Aplicações concorrentes (mecanismos de sincronização: variáveis compartilhadas e troca de.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner.
Transcrição da apresentaçã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. LPRM/DI/UFES 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”. LPRM/DI/UFES 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. LPRM/DI/UFES 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). LPRM/DI/UFES Sistemas Operacionais

Sincronização (2) “Nonblocking send, blocking receive” (cont.) Esquema mais usado. Erros podem levar a uma situação onde 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.) LPRM/DI/UFES 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. LPRM/DI/UFES 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). LPRM/DI/UFES 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. LPRM/DI/UFES 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. LPRM/DI/UFES Sistemas Operacionais

Endereçamento Indireto LPRM/DI/UFES Sistemas Operacionais

Formato da Mensagem LPRM/DI/UFES Sistemas Operacionais

Problema do Produtor- Consumidor com Troca de Mensagens #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 */ 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 LPRM/DI/UFES 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 LPRM/DI/UFES Sistemas Operacionais