processo internamente dadospara serem

Tamanho: px
Começar a partir da página:

Download "processo internamente dadospara serem"

Transcrição

1 Aula 14 Monitores Sincronização e Troca de de Processos Mensagens (5) Monitores Sugeridos Profa. Patrícia Motivação: (1974) sincronização (forçar) concorrentes. (1) por Dijkstra(1971) e desenvolvidos por Hoare D. Sistemas e BrinchHansen(1975), de alto nível, que têm são por estruturas objetivo de impor CostaLPRM/DI/UFES semáforos devam nenhuma omissões pode não uma estar baseados (deliberadas ser reivindicação estão boa inseridos atingida. sujeitos estruturação em no ou algoritmos formal a código não) erros para programas 2podem da do sua processo, programação. exclusão presença. existir e não mútua a Assim, exclusão Sistemas existe Embora ou Operacionais erros mútua estes e Monitores 2008/1 São Solução: Profa. Patrícia Idéia funcionalidade controle Tornar elementos (2) de uma linguagem de programação que provêm D. Em colocar mais fácil. equivalente a dos semáforos mas que são de CostaLPRM/DI/UFES podemos central: vez obrigatória as de Assim, de codificá-las seções codificar cada quando vez. críticas a exclusão como seções um procedimentos processo uma mútua. críticas Uma maneira de se fazer isso é 3área precisa dentro acessível (procedureentries) de referenciar cada somente processo, a um Sistemas dados Operacionais do Um Resultado: processo. monitor. compartilhados, o código ele simplesmente da seção chama não é um mais procedimento duplicado do cada 2008/1 Profa. Os Monitores contém Patrícia compartilhados (3) podem monitor, monitor pode ser visto como um bloco que processo internamente dadospara serem indiretamente, esses dados. e procedimentospara manipular D. CostaLPRM/DI/UFES dados ser isto pode declarados acessados é, acessar por por a única meio todos dentro através os maneira das dados 4do procedureentries. processos, dos monitor pela compartilhados procedimentos qual são mas um Sistemas só Operacionais é do 2008/1

2 Monitores As Profa. Patrícia Apenas mutuamente dos (4) D. monitor. procedureentriessão seus já garante exclusiva. a exclusão A executadas forma mútua de implementação de na forma manipulação CostaLPRM/DI/UFES um é Qualquer dados bloqueado processo internos. outro pode (esperando processo estar 5pela executando que disponibilidade tenha Sistemas invocado Operacionais um do o Variáveis Monitoré monitor). de Módula, programação: Pascal um conceito Concorrente, incluído Java. em algumas linguagens Mecanismo Sãovariáveis 2008/1 Profa. Patrícia Só sincronização provocam de Condição (1) D. Permitem, wakeup. sempre usado que estão por monitores associadas para a condições realizar especiais: Wait(ouDelay) a suspensão e a reativação de processos. que Signal(ouContinue) CostaLPRM/DI/UFES podem usadas ser portanto, declaradas como sincronizações argumentos dentro 6do de do monitor dois tipo comandos sleep- e Sistemas são Variáveis Operacionais 2008/1 Wait(condition) Profa. Patrícia Signal(condition) de Condição (2) D. Faz (suspende informações dados o monitor na condição). suspenda o Omonitor processo que armazena fez a chamada as CostaLPRM/DI/UFES para fila associada com outro (fila) quer processo. associada sobre à o variável monitor o processo à de variável reative condição. suspenso de condição. em uma Monitor estrutura é liberado de 7UM dos Se processos um processo Sistemas suspensos der Operacionais um na O Variáveis signal perdido. e não tiver outra tarefa esperando na condição, o sinal é Hoarepropôs 2008/1 Profa. Patrícia BrinchHansenpropôs que executar, esperar de Condição (3) D. em (i.e., acontece deixar após o umsignal(condition)? o bloqueando o processo Qrecentemente Psinalizador. Pdeve acordado quando realizada em uma fila pelo término operação de CostaLPRM/DI/UFES Fila Simplificação: processo declaração curso, Qdeve Qfor por Sinalizadores uma Qestava esperar). final Q. reiniciado. vez o em comando que esperando um (pode que Neste já procedimento estava signalsó o ter processo 8caso, prioridade) pode em a pode condição execução não do Pconclua aparecer monitor. ser mais lógica no Sistemas a como operação monitor verdadeira pela Operacionais a qual 2008/1

3 Exemplo (Abordagem de Hoare) Exemplo (Abordagem de Hoare) (cont.) Profa. Patrícia D. CostaLPRM/DI/UFES 9 Sistemas Operacionais 2008/1 Profa. Patrícia D. CostaLPRM/DI/UFES Sistemas Operacionais 2008/1 P5 Visão Profa. Patrícia D. CostaLPRM/DI/UFES 11de um da Monitor Estrutura Formato Sistemas Operacionais 2008/1 Profa. Patrícia D. CostaLPRM/DI/UFES 12 um Sistemas Monitor de Operacionais 2008/1 P1 P2 P4 Procedure A Procedure B Procedure C P3 Dados Críticos 10 Condition 1 Condition 2 Sinalizadores P6 P1 P2 Procedure A Condition 1 Dados Críticos Procedure B P5 Condition 2 P4 Procedure C Sinalizadores MONITOR <NomedoMonitor>; Declaração dos dados a serem compartilhados pelos processos (isto é, das variáveis globais acessíveis a todos procedimentos do monitor); Exemplos: X,Y: integer; C, D: condition; Entry Procedimento_1(Argumentos_do_Procedimento_1) Declaração das variáveis locais do Procedimento_1 Código do Procedimento_1 (ex: X:=1; wait(c)) Entry Procedimento_N(Argumentos_do_Procedimento_N) Declaração das variáveis locais do Procedimento_N Código do Procedimento_N (ex: Y:=2; signal(c)) BEGIN Iniciação das variáveis globais do Monitor END P6 P3

4 Chamada de Problema Profa. Patrícia D. CostaLPRM/DI/UFES 13 procedimento Consumidor Produtordo Sistemas Monitor Filósofos Operacionais 2008/1 Profa. Patrícia D. CostaLPRM/DI/UFES Sistemas Operacionais 2008/1 monitor {enum{thinking, condition Glutões Profa. Patrícia D. CostaLPRM/DI/UFES pickup(inti) putdown(inti) test(inti) dpself[5]; hungry, eating} state[5]; 15// prox. slide Filósofos void init() { void }} for state[i] = 0; i < = 5; thinking; i++) } pickup(inti) test[i]; if (state[i] self[i].wait(); Glutões = hungry;!={ eating) Sistemas Operacionais 2008/1 Profa. Patrícia D. CostaLPRM/DI/UFES void (cont.) if test(inti) ((state[i] (state[(i+ { == 4) void } self[i].signal(); + = 1) } 16hungry) putdown(inti) % state[i] eating; // test((i+4) test((i+1) 5] }!=&& left { eating)) = thinking; % and 5); right && Sistemas { neighbors Operacionais 2008/1 Processo P1 Chamada a um procedimento do monitor Processo P2 Chamada a um procedimento do monitor 14 Processo P3 Chamada a um procedimento do 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) end; procedure remove; if count = 0 then wait(empty); remove_item; count := count - 1; if count = N - 1 then signal(full) end; count := 0; end monitor; //Processo Produtor procedure producer; while true do produce_item; ProducerConsumer.enter end end; //Processo Consumidor procedure consumer; while true do ProducerConsumer.remove; consume_item end end;

5 Profa. Hansen, Monitores Java Patrícia existe. que checar waitingthreadentraráno Portanto, espera) indicação D. estão Baseada CostaLPRM/DI/UFES Isto mas executar a condição esperando um significa sem (para que signal garantias o no abordagem estado antes que monitor. processos éapenas devem os começar desejado monitor! processos sempre que uma uma a 17 Sistemas Operacionais 2008/1 Profa. to Java Monitores uses the synchronized em JavaJava keyword indicate Monitors that only thread at time can monitor the threads notifyall() executing monitor. when places A in thread scheduled. this or can any thread call A other thread wait() back synchronized that to the block has ready been and method queue leave sent of a to the signal the resume monitoruntil objectrepresenting is notguaranteed executioninside a notify() the to or the be Methods with that one Each that next thread executing inside the monitor compared to one that is blocked a call Patrícia Only must notifyall(). of has can Java D. inside back the is CostaLPRM/DI/UFES that been chosen wait() monitor's into a obtained are necessarily synchronized waiting This or the by static signal has the nameless ready synchronized whenever the can a JVM. one single longest queue, also method Finally, waiting one condition nameless be a the methods. is that thread synchronized. may the when thread first has variable one wait(), calls anonymous thread 18 a been Also, with woken notifyall() a corresponds notify(), waiting There to is up get condition notguaranteed with is is back the and called a lock a signal longest. into notifyall() notify(); variable a associated lock the Sistemas all move waiting monitor in that an be Operacionais the arbitrary which the called. with waiting object. threads is the not a Mais class that must be obtained when a static synchronized method iscalled. 2008/1 Próxima Linkprogconcorrente Profa. Patrícia D. CostaLPRM/DI/UFES gjava/monitors.html Informações aula em java Implementando Considere Variáveis: nc: sc: 19 Sistemas Operacionais 2008/1 Profa. Patrícia Cadaentry seguinteforma implementa número Semáforo o monitor de processos Monitores X com = 1; apenas bloqueados Condição usando uma C; em filac; Semáforos D. CostaLPRM/DI/UFESprocedure v(x); P(x); a body fila de of processos Fseráimplementadada F; bloqueados. 20 Sistemas Operacionais 2008/1

6 Implementando As implementadasdaseguinteforma: wait operaçõeswaite nc Monitores usando Semáforos (cont.) Profa. Patrícia D. CostaLPRM/DI/UFES V(X); P(sC); (C): ++; signal signal podemser if 21{nC--; }(nc>0) V(sC); P(X); (C) Motivação: Passagem (Troca) Mensagens Sistemas Operacionais 2008/1 Profa. Solução: Semáforos Patrícia Novo no compartilhamento sistemas e algoritmos de exclusão mútua são baseados D. independentes memória onde baseada distribuídos, de memória de máquinas variáveis. física. Isso Entretanto, implica no em a paradigma sincronização em compartilhada (duas) (nós de novas programação de e comunicação uma entre 22 primitivas: rede), os vários ( messagepassage ), não formam entre sendereceive. existindo processos. processos unidades Sistemas Operacionais é Primitivas 2008/1 send(destination, Profa. Patrícia receive(source, Envia D. Recebe uma a mensagem armazenada em CostaLPRM/DI/UFES de qualquer caixa uma postal. fonte, mensagem message_buffer) para e armazena-a um processo destino ou para 23 de uma fonte em específica, Sistemas Operacionais ou Questões message_buffer. Uma cenário Sincronização ereçamento; 2008/1 Profa. Patrícia D. Formato Disciplinas série Projeto Etc. troca novas entre de os mensagens: questões processos; surgem no CostaLPRM/DI/UFESdas mensagens; filas; 24 Sistemas Operacionais 2008/1

7 Sincronização Blockingsend, Profa. Patrícia Nonblockingsend, Mecanismo (1) D. Emissor mensagem e receptor blockingreceive : são bloqueados até que a CostaLPRM/DI/UFES (encontro). continua seja conhecido entregue. blockingreceive : processando 25como rendezvous normalmente Nonblockingsend, Sincronização (p.ex., enviando novas mensagens). Esquema Receptor mensagem é bloqueado (ex: servidor). até a recepção Sistemas da Erros Operacionais 2008/1 Profa. Patrícia Nonblockingsend (2) Com sistema, mais usado. blockingreceive (cont.) D. de mensagens bloqueado (soluções: podem incluindo repetidamente, levar tempo a uma do situação consumindo processador onde um os recursos processo do gera CostaLPRM/DI/UFES determinar blockingreceive uso eternamente reconhecimento de a timeout, mensagem coloca o se processo no uso a mensagem 26programador foi de acknowledgment ). ou mais receptor não de enviada e recebida uma memória. a pode responsabilidade fonte, Sistemas se ficar (uso perder Operacionais etc.) Sincronização 2008/1 Nonblockingsend, Nenhuma Com esperar. (3) Profa. Patrícia D. CostaLPRM/DI/UFES bloqueado da ter executado nonblockingreceive parte eternamente, o ser envolvida receivecorrespondente, enviada nonblockingreceive na o receptor comunicação nunca precisa fica 27entretanto, após o processo existe ou Sistemas o receptor seja, perigo Operacionais a mensagem será perdida. ereçamento A (1) 2008/1 Profa. Patrícia D. CostaLPRM/DI/UFES identificação da Direto: pedidos processo destino. sendinclui um identificador específico do processos). (i) transmissor; (ii)usando primitiva requerendo, operação receivepode um impressão (ex: ou parâmetro a processo servidor priori, de a operar duas formas: 28quaisquer transmissor identificação ( source ) impressão, outros para após do que Sistemas retornar processo o término aceita Operacionais a 2008/1

8 ereçamento As Profa. Patrícia D. Tal CostaLPRM/DI/UFES processos transmissor intermediário as mensagens local é enviam conhecido para (filas) enviadas. (2) não Indireto: o receptor são que como enviadas temporariamente mas diretamente sim um local armazena do 29mailbox. para mailboxese Assim, outros retiram mensagens dos mailboxes. ereçamento Uma desacoplaro flexibilidade vantagem no transmissor uso endereçamento mensagens e receptor, indireto é uma conseguida. Sistemas grande é que, Operacionais ao transmissor Um-para-um: Muitos-para-um: 2008/1 Profa. Patrícia D. Um-para-muitos: o e receptor Indireto: (3) relacionamentos entre CostaLPRM/DI/UFES multicast). mailboxé geralmente permite útil para comunicação referenciado interação aplicações cliente-servidor. privativa. como port. Neste caso, 30de grupo (broadcast Sistemas Operacionais e2008/1 ereçamento Profa. Indireto Formato Patrícia D. CostaLPRM/DI/UFES 31 Sistemas Operacionais 2008/1 Profa. Patrícia Mensagemda D. CostaLPRM/DI/UFES 32 Sistemas Operacionais 2008/1

9 Exclusão Mútua usando Mensagens Profa. Patrícia D. CostaLPRM/DI/UFES 33 Sistemas Operacionais 2008/1 const int n = //numero de processos void P (i){ message msg; while (true){ receive(box, msg); //blocking //critical section send(box, msg); //nonblocking //resto } void main(){ create_mailbox(box); send(box, null); par (P(1), P(2), P(n)); } 34 Profa. Patrícia D. CostaLPRM/DI/UFES void consumer(void) { #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 */ int item, i; message m; for (i = 0; i < N; i++) send(producer, &m); */Problema /* 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 Produtor- Consumidor Troca Sistemas de Mensagens Operacionais com 2008/1

Sincronização de Processos (4) Monitores

Sincronização de Processos (4) Monitores Sincronização de Processos (4) Monitores Monitores (1) Sugeridos por Dijkstra (1971) e desenvolvidos por Hoare (1974) e Brinch Hansen (1975), são estruturas de sincronização de alto nível, que têm por

Leia mais

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

Sincronização de Processos (5) Troca de Mensagens 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

Leia mais

Programação Concorrente

Programação Concorrente 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

Leia mais

(Aula 17) Threads em Java

(Aula 17) Threads em Java (Aula 17) Threads em Java Difícil As Threads thread threads de emjava classificar sãogerenciadaspelajvm. podemser com user criadasdas thread ou kernel Profa. Patrícia A seguintesmaneiras: Fazendo extend

Leia mais

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 08: Sincronização de Processos Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o problema da seção crítica, cujas soluções podem ser usadas

Leia mais

Revisão Ultima aula [1/2]

Revisão Ultima aula [1/2] SOP - TADS Comunicação Interprocessos - 2 IPC Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula

Leia mais

Monitores. Conceito Sistemas Operacionais II

Monitores. Conceito Sistemas Operacionais II Monitores Conceito Sistemas Operacionais II Monitores Autores Daniel Artur Seelig Fábio Lutz Local Universidade Federal do Rio Grande do Sul Instituto de Informática Sistemas Operacionais II Professor

Leia mais

Sistemas Operacionais

Sistemas Operacionais AULA 09 Sincronização de Processos - II Monitores Conforme comentamos, o uso equivocado dos semáforos pode levar a uma situação de deadlock, por isso devemos tomar cuidado ao programar utilizando este

Leia mais

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

Sistemas Operacionais. Técnicas de Implementação de Exclusão Mútua. Aula VI Prof. Rosemary Silveira Sistemas Operacionais Técnicas de Implementação de Exclusão Mútua Aula VI Prof. Rosemary Silveira Tópicos de Apresentação Condições de Corrida Técnicas de Implementação de Exclusão Mútua Condições de Corrida

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 11 Sincronização de Processos Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas Operacionais Sincronização de Processos (aula 5 Parte 2) Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br Roteiro Semáforos Monitores Passagem de Mensagem Exemplos em S.O.

Leia mais

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

Programação Concorrente em java - Exercícios Práticos Abril 2004 Programação Concorrente em java - Exercícios Práticos Abril 2004 1. Introdução As threads correspondem a linhas de controlo independentes no âmbito de um mesmo processo. No caso da linguagem JAVA, é precisamente

Leia mais

Sincronização. Cooperação entre Processos

Sincronização. Cooperação entre Processos Sincronização Parte II Programação Concorrente Cooperação entre Processos Vários processos executam em conjunto uma ou mais tarefas, nas quais Competem por recursos Indicam uns aos outros a: Ausência/existência

Leia mais

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Notas da Aula 6 - Fundamentos de Sistemas Operacionais 1. Monitores Notas da Aula 6 - Fundamentos de Sistemas Operacionais Embora os semáforos sejam uma boa solução para o problema da exclusão mútua, sua utilização não é trivial. O programador é obrigado a

Leia mais

Universidade da Beira Interior. Sistemas Distribuídos

Universidade da Beira Interior. Sistemas Distribuídos Folha 6-1 Sincronização de Threads A sincronização de Threads em Java é baseada no conceito do Monitor (de Hoare). Cada objecto Java tem associado um monitor (ou lock ) que pode ser activado se a palavra

Leia mais

Programação Orientada a Objetos Threads

Programação Orientada a Objetos Threads Threads Prof. Edwar Saliba Júnior Janeiro de 2013 1 Introdução Multithreading: fornece múltiplas threads de execução para a aplicação; permite que programas realizem tarefas concorrentemente; às vezes

Leia mais

Computação Concorrente (MAB-117) Monitores

Computação Concorrente (MAB-117) Monitores Computação Concorrente (MAB-117) Monitores Prof. Silvana Rossetto 1 Departamento de Ciência da Computação (DCC) Instituto de Matemática (IM) Universidade Federal do Rio de Janeiro (UFRJ) Maio de 2012 1.

Leia mais

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

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Introdução Processo cooperativo é aquele que pode afetar outros processos em execução no sistema Ou ser por eles afetado Processos

Leia mais

Disciplina de Sistemas Distribuídos. Sincronização em SD. Prof. M.Sc. Alessandro Kraemer kraemer@utfpr.edu.br. Kraemer

Disciplina de Sistemas Distribuídos. Sincronização em SD. Prof. M.Sc. Alessandro Kraemer kraemer@utfpr.edu.br. Kraemer Disciplina de Sistemas Distribuídos Sincronização em SD Prof. M.Sc. Alessandro kraemer@utfpr.edu.br Cronograma Contextualização Tipos de sincronização Mecanismos para sincronização da região crítica Exclusão

Leia mais

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

Fundamentos. Módulo 6: Sincronização de Processos. Bounded-Buffer (Cont.) Bounded-Buffer Módulo 6: Sincronização de Processos Fundamentos Fundamentos O problema das regiões críticas Hardware de Sincronização Semáforos Problemas Clássicos de Sincronização Regiões Críticas Monitores Sincronização

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Modelo cliente e servidor Slide 2 Nielsen C. Damasceno Modelos Cliente - Servidor A principal diferença entre um sistema centralizado e um sistema distribuído está na comunicação

Leia mais

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

Sistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos Sistemas Operacionais Capítulo 7 Sincronização e Comunicação entre Processos Baseado no Livro e Material de Apoio de Arquitetura de Sistemas Operacionais 3ª edição - LTC - 2004 Francis Berenger Machado

Leia mais

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Comunicação e Sincronismo entre processos Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO 1 Comunicação entre Processos Processos

Leia mais

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada Programação Estruturada Programação Estruturada Paradigmas de Linguagens de Programação As linguagens desse paradigma são muitas vezes chamadas de linguagens convencionais, procedurais ou imperativas.

Leia mais

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

Programação distribuída e paralela (C. Geyer) RPC 1 Programação distribuída e paralela (C. Geyer) RPC 1 Autores C. Geyer Local II-UFRGS Versão v6 2008-2 Disciplinas SOII Programação distribuída e paralela (C. Geyer) RPC 2 Bibliografia base original dos

Leia mais

Comunicação em Sistemas Distribuídos

Comunicação em Sistemas Distribuídos Comunicação em Sistemas Distribuídos A diferença mais importante entre os Sistemas Distribuídos e os Sistemas Uniprocessadores é a comunicação inter-processo. Nos uniprocessadores esta comunicação é feita

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Processos e Threads Gustavo Reis gustavo.reis@ifsudestemg.edu.br - O que são Processos? Uma abstração de um programa em execução. Mantêm a capacidade de operações (pseudo)concorrentes,

Leia mais

Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental

Leia mais

Threads e Concorrência em Java (Material de Apoio)

Threads e Concorrência em Java (Material de Apoio) Introdução Threads e Concorrência em Java (Material de Apoio) Professor Lau Cheuk Lung http//www.inf.ufsc.br/~lau.lung INE-CTC-UFSC A maioria dos programas são escritos de modo seqüencial com um ponto

Leia mais

Monitores. Setembro de 2009. Monitores

Monitores. Setembro de 2009. Monitores Setembro de 2009 mecanismo de sincronização clássico referência influência de conceitos de programação estruturada C. A. R. Hoare, Monitors: an operating system structuring concept, Communications of the

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos

Leia mais

Java Threads. Introdução

Java Threads. Introdução Java Threads mleal@inf.puc-rio.br 1 Introdução O único mecanismo de concorrência suportado explicitamente pela linguagem Java é multi-threading. threading. Os mecanismos de gerenciamento e sicronização

Leia mais

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

Remote Procedure Call. Programação distribuída e paralela (C. Geyer) RPC 1 Remote Procedure Call Programação distribuída e paralela (C. Geyer) RPC 1 Autoria Autores C. Geyer Local II-UFRGS Versão V11.4 2014-2 Disciplinas SOII Programação distribuída e paralela (C. Geyer) RPC

Leia mais

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

9 - Sincronização e Comunicação entre Processos 1 9 - Sincronização e Comunicação entre Processos 91 Introdução Em um sistema multitarefa, seja com um único processador ou com mais de um processador ou ainda com vários núcleos por processador, os processos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

Comunicação. Parte II

Comunicação. Parte II Comunicação Parte II Carlos Ferraz 2002 Tópicos Comunicação Cliente-Servidor RPC Comunicação de objetos distribuídos Comunicação em Grupo Transações Atômicas Comunicação Stream 2 Comunicação cliente-servidor

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Sincronização entre Processos Andreza Leite andreza.leite@univasf.edu.br Sincronização Freqüentemente, os processos precisam se comunicar com outros processos. Isto ocorre quando

Leia mais

Arquitetura de Sistemas Operacionais

Arquitetura de Sistemas Operacionais Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Processo Profº Antonio Carlos dos S. Souza Estrutura do Processo Contexto de Software Contexto de Hardware Programa Espaço

Leia mais

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

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais Comunicação Inter-Processos Conceitos Iniciais 1 Características para Comunicação Inter-Processos. Passagem de Mensagem pode ser suportada por duas operações de comunicação (send e receive). A comunicação

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Sobre a apresentação (About(

Sobre a apresentação (About( Capítulo 4: Threads Sobre a apresentação (About( the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2005. Esse apresentação foi modificada por Cristiaino

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Soquetes Um soquete é formado por um endereço IP concatenado com um número de porta. Em geral, os soquetes utilizam uma arquitetura cliente-servidor. O servidor espera por pedidos

Leia mais

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

SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010) SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010) OBJETIVO GERAL Este trabalho possui o objetivo de exercitar a lógica de programação dos alunos do Terceiro ano do Curso de BSI e também desenvolver

Leia mais

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

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor Comunicação em Sistemas Distribuídos Paradigma / Os processos em um SD estão lógica e fisicamente separados. Precisam se comunicar para que possam interagir O desempenho de um SD depende criticamente do

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 06: Threads Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o conceito de thread Discutir as APIs das bibliotecas de threads Pthreads, Win32

Leia mais

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

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

THREADS EM JAVA. George Gomes Cabral

THREADS EM JAVA. George Gomes Cabral THREADS EM JAVA George Gomes Cabral THREADS Fluxo seqüencial de controle dentro de um processo. Suporte a múltiplas linhas de execução permite que múltiplos processamentos ocorram em "paralelo" (em computadores

Leia mais

ALua. asynchronous communication in Lua

ALua. asynchronous communication in Lua ALua asynchronous communication in Lua o que é modelo de programação troca de mensagens Lua assincronismo modelo de concorrência cada evento tratado até o final estrutura da rede daemons intermediando

Leia mais

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

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Principais problemas programação concorrente Deadlocks (impasses) Starvation (inanição) Condições de corrida Erros de consistência na

Leia mais

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

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

Threads em Java. Sistemas Operacionais - Laboratório Professor Machado

Threads em Java. Sistemas Operacionais - Laboratório Professor Machado Threads em Java Sistemas Operacionais - Laboratório Professor Machado 1 Conceitos de Programação Concorrente Uma unidade concorrente é um componente de um programa que não exige a execução seqüencial,

Leia mais

Comunicação entre Processos

Comunicação entre Processos Comunicação entre Processos Comunicação entre Processos - Sistemas Operacionais fornecem mecanismos para comunicação entre processos (IPC), tal como filas de mensagens, semáfaros e memória compartilhada.

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos RPC x RMI Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Chamada Remota a Procedimento Definição Passagem de Parâmetros STUBS Semântica de Falhas 2 RPC Chamada Remota a

Leia mais

Comunicação entre processos (2)

Comunicação entre processos (2) Comunicação entre processos (2) Pedro Cruz EEL770 Sistemas Operacionais Lembretes Proposta de trabalho Enviar para cruz@gta.ufrj.br Prazo: dia 02 de abril 2 Aula passada Comunicação entre processos é útil

Leia mais

MC504 - Sistemas Operacionais

MC504 - Sistemas Operacionais MC504 - Sistemas Operacionais Algoritmo da Padaria Problema dos Produtores e Consumidores Primitivas de Sincronização Islene Calciolari Garcia Primeiro Semestre de 2014 Sumário 1 Algoritmo da Padaria 2

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS MACHADO/MAIA: CAPÍTULO 07, PÁGINA 101 Prof. Pedro Luís Antonelli Anhanguera Educacional sistemas multiprogramáveis Os sistemas multiprogramáveis

Leia mais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

Leia mais

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

Sincronização e Comunicação entre Processos. Adão de Melo Neto Sincronização e Comunicação entre Processos Adão de Melo Neto 1 INTRODUÇÃO Em um sistema multitarefa os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo sistema operacional.

Leia mais

Exclusão Mútua em Sistemas Distribuídos

Exclusão Mútua em Sistemas Distribuídos Exclusão Mútua em Sistemas Distribuídos Recurso deve ser utilizado por apenas um processo de cada vez, com garantia de justiça ausência de deadlock ausência de livelock Premissas: processos não falham

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Mecanismos de Comunicação Voltando ao exemplo da calculadora... Rede local

Leia mais

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

Sistemas Distribuídos 59. Sistemas Distribuídos 61. Receive não-bloqueante: Comunicação entre processos! Memória Compartilhada: " os processo compartilham variáveis e trocam informações através do uso dessas variáveis compartilhadas COMUNICAÇÃO ENTRE PROCESSOS P1 Área Compartilhda!

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando

Leia mais

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

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação? Número: Nome: LEIC/LERC 2011/12-2º Exame de Sistemas Operativos 3/Fevereiro/2012 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 2h30m Grupo I [4v] 1. [0,6v] A

Leia mais

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações Programação Orientada por Objectos com Java www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt 1 Multithreading 154 Objectivos Ser capaz de: Explicar os conceitos básicos de multithreading Criar threads múltiplos

Leia mais

Fundamentos de Programaçã. ção Concorrente

Fundamentos de Programaçã. ção Concorrente Java 2 Standard Edition Fundamentos de Programaçã ção Concorrente Helder da Rocha www.argonavis.com.br 1 Programação concorrente O objetivo deste módulo é oferecer uma introdução a Threads que permita

Leia mais

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

Nomes e Endereçamento. Nomes e Endereçamento. Paradigmas em Sistemas Distribuídos. Paradigmas em Sistemas Distribuídos Paradigmas em Sistemas Distribuídos Paradigmas em Sistemas Distribuídos Nomes e Endereçamento Troca de Mensagens Operações emota Comunicação em Grupo Time e Clocks Sincronismo Ordenação Coordenação Consistência

Leia mais

3. Comunicação em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos 3. Comunicação em 3.1.Troca de mensagens As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas

Leia mais

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

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos Aula 23 Distribuídos SOs de Rede Em sistemas operacionais de rede você sabe quando é local e quando é remoto. Assim, o trabalho não muda, com exceção de comandos para acesso remoto: - telnet - ftp - etc.

Leia mais

Sistemas Distribuídos. Aleardo Manacero Jr.

Sistemas Distribuídos. Aleardo Manacero Jr. Sistemas Distribuídos Aleardo Manacero Jr. Conteúdo Conceitos fundamentais Estratégias de controle: relógios e algoritmos de sincronismo Serviços: arquivos e memória Corba Processamento distribuído Sistemas

Leia mais

Arquitetura de Sistemas Operativos

Arquitetura de Sistemas Operativos Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Introdução Os sistemas operativos implementam mecanismos que asseguram independência entre processos (i.e., a execução de um processo

Leia mais

Threads em Java. Java Threads. Java Componentes: JVM JVM:

Threads em Java. Java Threads. Java Componentes: JVM JVM: Threads em Java (Aula 17) Java Threads Difícil de classificar com user thread ou kernel thread As threads Java são gerenciadas pela JVM. Threads em Java podem ser criadas das seguintes maneiras: Fazendo

Leia mais

Sistemas Distribuídos Modelo Cliente-Servidor

Sistemas Distribuídos Modelo Cliente-Servidor Sistemas Distribuídos Modelo Cliente-Servidor Disciplina: Sistemas Distribuídos Prof.: Edmar Roberto Santana de Rezende Faculdade de Engenharia de Computação Centro de Ciências Exatas, Ambientais e de

Leia mais

Programação Concorrente em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Programação Concorrente em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM Programação Concorrente em Java Profa Andréa Schwertner Charão DLSC/CT/UFSM O que é programação concorrente? Um programa, múltiplos fluxos de execução Quando usar programação concorrente? Desempenho Ex.:

Leia mais

Máquina de estados UNIX O

Máquina de estados UNIX O Estruturas Processos de Controle (Aula 5) Aula Interrupções Profa. Patricia Gerência fluxo, execução D. O Abstração passada Criação podendo de gerar hw e transição sw (mudança de CostaLPRM/DI/UFES que

Leia mais

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de Estruturas Processos de Controle (Aula 5) Aula Interrupções Profa. Patricia Gerência fluxo, execução D. O Abstração passada Criação podendo de gerar hw e transição sw (mudança de CostaLPRM/DI/UFES que

Leia mais

Adriano Reine Bueno Rafael Barros Silva

Adriano Reine Bueno Rafael Barros Silva Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências

Leia mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta

Leia mais

Linguagens de Programação Aula 10

Linguagens de Programação Aula 10 Linguagens de Programação Aula 10 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada As sentenças de controle das LP imperativas ocorrem em diversas categorias: seleção, seleção múltipla, iteração

Leia mais

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador)

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador) Multiprocessamento Multiprocessadores com memória distribuída (multicomputador) Conjunto de processadores, cada qual com sua memória local Processadores se comunicam por troca de mensagens, via rede de

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 4 Estilos Arquitetônicos Estilos Arquiteturais Dataflow

Leia mais

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

Ciência de Computadores Sistemas Distribuídos e Móveis Ciência de Computadores Sistemas Distribuídos e Móveis Lista de Exercícios Data: 4 de Novembro de 2013 Questões sobre o capítulo 1, Tanenbaum & van Steen: Fundamentos 1) Explique o significado de transparência,

Leia mais

Permite o acesso remoto a um computador;

Permite o acesso remoto a um computador; Telnet Permite o acesso remoto a um computador; Modelo: Cliente/Servidor; O cliente faz um login em um servidor que esteja conectado à rede (ou à Internet); O usuário manipula o servidor como se ele estivesse

Leia mais

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

Leia mais