Issuu on Google+

Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Arquitetura de Sistemas Operativos Hernani Costa hpcosta@dei.uc.pt

Sistemas Operativos 2011/2012

“Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

1

Mecanismos de Comunica¸c˜ ao entre Processos

Mecanismos de Comunica¸c˜ao entre Processos Modelo de Comunica¸c˜ao Caracter´ısticas do Canal de Comunica¸c˜ ao

“Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Nesta aula, vamos detalhar algumas carater´ısticas do canal de comunica¸c˜ao que justificam, em grande medida, o n´ umero significativo de objetos deste tipo oferecidos pelos sistemas operativos.

“Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

ˆ Ambito da Comunica¸c˜ao

O ˆambito da comunica¸c˜ao resulta da conjuga¸c˜ao do ambiente de execu¸c˜ao, localiza¸c˜ao e dependˆencias entre os processos interlocutores (produtores, consumidores) associados a um canal.

“Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

ˆ Ambito da Comunica¸c˜ao As alternativas mais relevantes que, em u ´ltima an´alise, permitem ou invalidam a utiliza¸c˜ao de um determinado mecanismo de comunica¸c˜ao, s˜ao apresentadas de acordo com o maior n´ıvel de flexibilidade que permitem na comunica¸c˜ao: Processos executando-se num mesmo computador, relacionados de forma hier´ arquica (por exemplo, processo-pai e processo-filho); Quaisquer processos executando-se num mesmo computador, sem rela¸c˜ao hier´arquica; Processos executando-se em computadores diferentes equipados com o mesmo sistema operativo; Processos executando-se em computadores diferentes equipados com sistemas operativos possivelmente distintos. “Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Armazenamento de Mensagens Num dado instante, o canal pode conter apenas uma mensagem ou armazenar v´arias. Se o canal de comunica¸c˜ao n˜ao tiver capacidade de memoriza¸c˜ao, o produtor tem de ficar bloqueado no envio de mensagem at´e que o consumidor execute uma chamada `a fun¸c˜ao de recep¸c˜ao. A possibilidade de armazenar v´arias mensagens permite desacoplar o ritmo de produ¸c˜ao da informa¸c˜ao da velocidade com que ´e consumida pelo processo consumidor. “Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Armazenamento de Mensagens

A capacidade de armazenamento de mensagens por parte do canal permite optimizar consideravelmente a estrutura das aplica¸c˜oes que fazem uso dos modelos de intera¸c˜ao mais flex´ıveis: correio, di´alogo, difus˜ao e muitos-para-muitos. No caso do modelo de intera¸c˜ao, mestre-escravo, o uso de um canal sem armazenamento de mensagens ´e suficiente mas a maioria dos mecanismos permitem armazenar informa¸c˜ao.

“Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Armazenamento de Mensagens

Esta caracter´ıstica do canal ´e regida pela quantidade de recursos atribu´ıdos pelo sistema ao canal. Esta dimens˜ao estabelece implicitamente limites para o diferencial entre o ritmo de produ¸c˜ao e o de consumo das mensagens pelos processos associados a um canal.

“Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Estrutura das Mensagens

O modo como s˜ao estruturadas as mensagens transferidas durante a comunica¸c˜ao apresenta duas vertentes: interna e externa.

“Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Estrutura das Mensagens

A vertente interna determina a codifica¸c˜ao dos dados trocados na comunica¸c˜ao, em que podemos ter canais: Opacos - os dados contidos nas mensagens transferidas s˜ao opacos aos mecanismos de comunica¸c˜ao e tˆem de ser explicitamente codificados e descodificados pelos processos interlocutores; Estruturados - a comunica¸c˜ao imp˜ oe uma estrutura fixa para as mensagens trocadas ou ent˜ao suporta a transferˆencia de informa¸c˜ao de tipo anexa aos dados no conte´ udo das mensagens.

“Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Estrutura das Mensagens

A primeira alternativa ´e a mais frequente sendo tradicionalmente adotada pelos mecanismos de comunica¸c˜ao disponibilizados pelo sistemas operativos, onde as mensagens devem obedecer a uma estrutura predefinida, ainda que possivelmente extens´ıvel. A segunda alternativa, na sua variante fixa, ´e empregue nas message queues em Linux, e mensagens enviadas a janelas no Windows. “Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Estrutura das Mensagens A vertente externa da estrutura das mensagens foca a delimita¸c˜ao e preserva¸c˜ao das fronteiras entre as diferentes mensagens enviadas, de forma a que estas sejam reflectidas no consumidor e noutras tantas opera¸c˜ oes de recep¸c˜ao de mensagens. Neste ˆambito, quando o canal se encarrega desta estrutura, este pode ser orientado a: Mensagens-pacote - a comunica¸c˜ao realiza-se atrav´es da troca de mensagens individualizadas, cuja fronteira ´e preservada e imposta na recep¸c˜ao; Streams - a comunica¸c˜ao processa-se atrav´es da escrita e leitura de sequˆencias ou correntes ordenadas de bytes (byte streams). “Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Estrutura das Mensagens O primeiro tipo de interface corresponde ao conceito habitual de um sistema de comunica¸c˜ao baseado em mensagens. O segundo tipo de interface ´e baseado nos sistemas de ficheiros e na interface das E/S. Para facilitar a programa¸c˜ao e para permitir uma mais f´acil interliga¸c˜ao com o sistema de E/S, ´e vulgar os sistemas oferecerem mecanismos de comunica¸c˜ao com os dois tipos de interface, por vezes combinados em conjunto (por exemplo, sockets, named pipes em Windows). “Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Estrutura das Mensagens Esta caracter´ıstica do canal pode ser intermut´avel, sendo certo que emular uma sobre a outra implica sempre algum custo suplementar. A interface de sequˆencia ou corrente de bytes (streams) pode ser constru´ıda a partir de uma interface de mensagens, atrav´es de uma adequada gest˜ao de mem´ orias tamp˜ao, que pode ser realizada quer pelo sistema operativo quer por uma biblioteca de utilit´arios, ou ainda integrada no suporte das linguagens de programa¸c˜ao. “Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Estrutura das Mensagens

A interface de mensagens tamb´em pode ser realizada sobre uma interface de streams atrav´es da inser¸c˜ao de fronteiras expl´ıcitas (por exemplo, separadores, indica¸c˜ao de dimens˜ao de cada mensagem) na sequˆencia de bytes e seu posterior processamento na recep¸c˜ao para individualizar as mensagens recebidas.

“Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Sincroniza¸c˜ao A comunica¸c˜ao entre processos contempla n˜ao apenas a transferˆencia de dados, mas tamb´em, de forma impl´ıcita, a sincroniza¸c˜ao entre processos e a necessidade de armazenamento de mensagens. As diferentes semˆanticas de sincroniza¸c˜ao fazem-se cumprir aquando da invoca¸c˜ao da fun¸c˜ao de envio e recep¸c˜ao de mensagens. Podem implicar a entrega imediata das mensagens no processo consumidor ou necessitar que estas sejam armazenadas temporariamente, ap´ os o seu envio, e at´e que sejam entregues. “Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Sincroniza¸c˜ao As semˆanticas mais comuns no envio de mensagens s˜ao: S´ıncrona - o produtor fica bloqueado at´e que o processo consumidor receba a mensagem e aceda ao seu conte´ udo (unbuffered); Ass´ıncrona - o produtor envia a mensagem e continua a execu¸c˜ao, assim que esta tenha sido armazenada no canal de forma tempor´aria at´e que seja recebida pelo consumidor (buffered); Cliente-servidor (ou pedido-resposta) - o processo que age inicialmente como produtor (cliente) fica bloqueado at´e que o consumidor (servidor) tenha recebido a mensagem e enviado uma mensagem de resposta. “Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Sincroniza¸c˜ao A semˆantica ass´ıncrona ´e a mais vulgar e aquela que melhor se adapta a um mecanismo de comunica¸c˜ao gen´erico. A semˆantica s´ıncrona, tamb´em designada por rendez-vous, express˜ao que refor¸ca a ideia de um ponto de sincroniza¸c˜ao comum aos dois processos, ´e menos utilizada tendo como exemplo o envio s´ıncrono de mensagens a janelas no Windows. Na semˆantica cliente-servidor, o envio da primeira mensagem constitui um pedido emitido pelo processo cliente, que ´e recebido pelo processo servidor. “Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Sincroniza¸c˜ao Este, uma vez realizada a opera¸c˜ao pretendida, envia uma mensagem de resposta contendo o resultado que ´e recebido pelo cliente. O cliente aguarda at´e que a resposta ao servi¸co que solicitou lhe seja entregue. ´ de real¸car a diferen¸ca entre esta sincroniza¸c˜ao e o modo E s´ıncrono. No primeiro o processo apenas aguarda que a mensagem seja entregue ao destinat´ario, no segundo espera que o servi¸co “Qualificar é crescer” solicitado na mensagem seja executado. Prof. Hernani Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Sincroniza¸c˜ao Na maior parte dos mecanismos de comunica¸c˜ao oferecidos pelos sistemas operativos, n˜ao ´e comum esta semˆantica ser oferecida, com excep¸c˜ao dos named pipes em Windows, sendo vulgares apenas nos sistemas distribu´ıdos de invoca¸c˜ao remota de procedimento (por exemplo, Sun RPC, Java Remote Method Invocation, .NET Remoting, SOAP). Contudo, pode sempre implementar-se explicitamente, bloqueando o processo produtor `a espera da mensagem de resposta do processo consumidor. “Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Sincroniza¸c˜ao Na rece¸c˜ao de mensagens, a semˆantica pode ser s´ıncrona ou ass´ıncrona (n˜ao bloqueante). Na primeira, utilizada maioritariamente, o consumidor fica bloqueado aguardando que uma mensagem seja recebida e possa aceder ao seu conte´ udo. Na segunda, o consumidor sinaliza a sua inten¸c˜ao de receber uma mensagem ao canal de comunica¸c˜ao, continuando a sua execu¸c˜ao normal. “Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Sincroniza¸c˜ao

Posteriormente, o consumidor pode verificar se mensagem foi j´a recebida e o seu conte´ udo est´a dispon´ıvel para ser acedido, ou ser notificado deste facto atrav´es de uma rotina ass´ıncrona registada na opera¸c˜ao de recep¸c˜ao.

“Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Ordena¸c˜ao, Direcionalidade e Fiabilidade

Finalmente, um canal de comunica¸c˜ao pode tamb´em ser caracterizado pela forma como assegura, ou n˜ao, a ordena¸c˜ao (independentemente da sua estrutura) e a fiabilidade na entrega das mensagens enviadas, bem como se permite comunica¸c˜ao unidireccional ou bidireccional. Quando o canal de comunica¸c˜ao n˜ao oferece bidirecionalidade na comunica¸c˜ao, ´e necess´aria a utiliza¸c˜ao expl´ıcita de dois canais, o que implica programa¸c˜ao adicional. “Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


Resumo

Mecanismos de Comunica¸c˜ ao entre Processos

Modelo de Comunica¸c˜ ao

Avalia¸c˜ao - Trabalho Te´orico-Pr´atico 6

Escreve um pequeno texto onde resume os slides anteriores. O texto dever´a: ser elaborado em grupo; enviado por email ao professor no final da aula; e dever´a conter entre 200 a 300 palavras.

“Qualificar é crescer”

Prof. Hernani

Hernani Costa TGPSI 09/12

hpcosta@dei.uc.pt Sistemas Operativos

M´ odulo 5B


gggg