Programação Concorrente



Documentos relacionados
Sincronização de Processos (4) Monitores

Sistemas Operacionais. Técnicas de Implementação de Exclusão Mútua. Aula VI Prof. Rosemary Silveira

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

Sistemas Operacionais

processo internamente dadospara serem

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

Fundamentos. Módulo 6: Sincronização de Processos. Bounded-Buffer (Cont.) Bounded-Buffer

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

Revisão Ultima aula [1/2]

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

Comunicação em Sistemas Distribuídos

Concorrência e Paralelismo

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

Sistemas Operacionais

Monitores. Conceito Sistemas Operacionais II

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

7 SINCRONIZAÇÃO DE PROCESSOS

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

Exclusão Mútua Distribuída

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

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

3. Comunicação em Sistemas Distribuídos

Sincronização. Cooperação entre Processos

Sistemas Distribuídos


Notas da Aula 6 - Fundamentos de Sistemas Operacionais

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

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

Sistemas Distribuídos Modelo Cliente-Servidor

Computação Concorrente (MAB-117) Monitores

Arquitetura de Computadores II

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

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

Sistemas Operacionais

UNIVERSIDADE. Sistemas Distribuídos

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

Sistemas Distribuídos

Sistemas Operacionais Sincronização e Comunicação entre Processos

SISTEMAS OPERACIONAIS

Capítulo 8 Arquitetura de Computadores Paralelos

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

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

SISTEMAS OPERACIONAIS 2007

Conceito de processo como uma unidade de trabalho em um sistema moderno de tempo compartilhado. Estados de um processo.

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

Programação de Sistemas

Programação de Sistemas

Exclusão Mútua em Sistemas Distribuídos

E.E.E.P. Dr. Solon Tavares Sistemas Operacionais Prof. Henrique Cordeiro. Programação Concorrente em Linux

Seja uma rede de Petri definida pela tripla (L, T, A), e por sua marcação inicial M 0.

Arquitetura de Sistemas Operativos

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

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

Sistemas distribuídos:comunicação

Comunicação. Parte II

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

Sistemas Distribuídos Grupos

Comunicação entre processos (2)

ALua. asynchronous communication in Lua

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso

Um cliente de cada vez:

Programação Orientada a Objetos Threads

Programação Concorrente em java - Exercícios Práticos Abril 2004

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

SISTEMAS DISTRIBUÍDOS

Comunicação entre Processos

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

LaSiD/UFBA. Raimundo J. de A. Macêdo

Profº. Enrique Pimentel Leite de Oliveira

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

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

MC504 - Sistemas Operacionais

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

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Monitores. Setembro de Monitores


Universidade da Beira Interior. Sistemas Distribuídos

Sistemas Operacionais

Sistemas Distribuídos

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

Arquitetura de Sistemas Operacionais

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

Comunicação entre Processos Canal de comunicação Arquitetura da comunicação Modelos de comunicação

Sistemas Distribuídos. Aleardo Manacero Jr.

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Fundamentos de Banco de Dados

Capítulo II Modelos de Programação Distribuída

Transcrição:

Programação Concorrente Monitores e Troca de Mensagens Monitores Considere que, no projeto da solução do produtor-consumidor com semáforos, os 2 downs tenham sido trocados Se o buffer estiver cheio deadlock Monitor = coleção de variáveis, estruturas e procedimentos que são agrupados em um módulo ou pacote (tipo abstrato de dados com operações bem definidas para atuarem sobre sua estrutura de dados) Um monitor é uma abstração de alto nível que provê exclusão mútua Os procedimentos de um monitor só executam alguma tarefa quando chamados por processos (são passivos) e operam sobre variáveis comuns que constituem sua estrutura de dados 2 Monitores e Troca de Mensagens 1

Monitores Os processos podem chamar procedimentos dos monitores, mas não têm acesso à estrutura interna dos mesmos Somente um processo pode estar ativo em um monitor em cada instante, sendo assim, definem regiões críticas criando exclusão mútua para a estrutura de dados do monitor Quando um processo chama um procedimento num monitor, verifica-se se outro processo está ativo no monitor Sim: processo suspenso Não: processo pode entrar na Região Crítica A sincronização entre processos concorrentes se faz através de operações WAIT e SIGNAL sobre variáveis do tipo evento, definidas dentro do monitor Uma thread (ou procedimento) que invoca x.wait é suspensa até que outra(o) invoque x.signal Implementação: precisa de suporte da linguagem 3 Monitores e Troca de Mensagens Monitores Somente uma thread (ou procedimento) pode estar ativo dentro do monitor por vez monitor monitor-name { // variable declarations public entry p1( ) { public entry p2( ) { 4 Monitores e Troca de Mensagens 2

Monitor com variáveis veis de condição 5 Monitores e Troca de Mensagens Produtor/Consumidor com Monitor procedure producer; while true do produce_item; ProduceConsumer.enter; procedure consumer; while true do ProduceConsumer.remove; consume_item; 6 Monitores e Troca de Mensagens 3

(cont.) Prod/Cons com Monitor monitor ProducerConsumer condition full, empty; integer count; procedure enter; if count = N then wait(full); enter_item; count := count + 1; if count = 1 then signal(empty); procedure remove; if count = 0 then wait(empty); remove_item; count := count - 1; if count = N - 1 then signal(full); count := 0; end monitor; 7 Monitores e Troca de Mensagens Troca de Mensagens Os mecanismos anteriores permitem comunicação indireta O mecanismo de troca de mensagens entre um processo gerente, destinado a disciplinar a utilização de determinado recurso, e os processos concorrentes pode ser usado para se obter exclusão mútua Duas primitivas -não há compartilhamento de memória SEND(destino, msg) RECEIVE(fonte, &msg) destino: processo destinatário (ex.: PID) msg: mensagem que se quer enviar fonte: processo que enviou msg: mensagem retornada, se existir Caso não exista mensagem, o processo pode ser bloqueado até a existência de uma 8 Monitores e Troca de Mensagens 4

(cont.) Troca de Mensagens Identificação dos processos: processo@máquina Nomes de máquinas iguais domínio (proc@máq.domínio) O armazenamento e a sincronização são feitos pelas primitivas, ou seja, pelo SO, que é o responsável A mensagem pode se perder na rede: mensagem de reconhecimento (acknowledgement) se ACK não chegar, retransmite e se a msg chega, mas o ACK se perde? fonte envia msg novamente Confiabilidade autenticação n o de identificação de msg Se transmissor e receptor estão na mesma máquina, o rendimento cai pelo excesso de cópias de dados 9 Monitores e Troca de Mensagens Prod/Cons com Troca de Mensagens #include prototypes.h #define N 100 #define MSIZE 4 typedef int message[4]; void producer(void) { int item; message m; while (TRUE) { produce_item(&item); receive(cons, &m); build_msg(&m, item); send(cons, &m); void consumer(void) { int item, i; message m; for(i=0; i<n; i++) send(prod, &m); while (TRUE) { receive(prod, &m); extract_msg(&m,item); send(prod, &m); consume_item(item); 10 Monitores e Troca de Mensagens 5