Vamos fazer um pequeno experimento

Documentos relacionados
Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Comunicação. capítulo

Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos Aula 2

Programação Distribuída. Tipos de Sistemas Distribuídos

Arquitetura de Sistemas Operativos

Sistemas Operacionais Distribuídos e de Redes

Comunicação entre Processos por Troca de Mensagens. Prof. Celso maciel da Costa

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

Programação de Sistemas em Tempo Real

Sumário. Message Oriented Middleware (MOM) Sincronização na Comunicação. Comunicação Assíncrona

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

Sistemas Distribuídos Aula 10

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Dados em programas são estruturados, enquanto que mensagens carregam informação seqüencial: Linearização x Restauração de dados Requisição

Sistemas Operacionais II

MOM Message Oriented Middleware

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 10. Operações nos processos. Processos cooperativos, comunicação entre processos.

Programação de Sistemas

Programação de Sistemas

REDES DE COMPUTADORES

AULA 3 - REDES. Prof. Pedro Braconnot Velloso

Características de Sistemas Distribuídos

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Principais conceitos de CORBA

Comunicação. Carlos A. G. Ferraz 25/6/2003. Sistemas Distribuídos 1. Tópicos. Camadas. Transmissão de dados. Marshalling/Unmarshalling.

Camada de Aplicação da Arquitetura TCP/IP

AULA ANTERIOR: MODELOS FUNDAMENTAIS

Message Oriented Middleware (MOM)

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Características de Sistemas Distribuídos

Comunicação entre Processos

SISTEMAS DISTRIBUÍDOS. CAPÍTULO 4 COMUNICAÇÃO Slides cedidos pela professora Aline Nascimento e do livro texto

Fundamentos de Sistemas Operacionais

Sistemas Distribuídos

Níkolas Timóteo Paulino da Silva Redes de Computadores I ADS 2ºTermo

Comunicação entre processos COMUNICAÇÃO ENTRE PROCESSOS. Comunicação entre processos - troca de mensagens

Redes de Computadores.

COMUNICAÇÃO ENTRE PROCESSOS

Lista de exercícios - 1º bimestre 2016 REDES

Sistemas Distribuídos Aula 3

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Arquitetura de Computadores Sistemas Operacionais II

SSC0611 Arquitetura de Computadores

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

Tecnologias de Distribuição e Integração. Quais as preocupações a ter com um sistema distribuído?

Arquitetura de sistemas distribuídos

Sistemas Distribuídos

Redes de Computadores

Desenvolvimento Cliente-Servidor 1

Sistemas Distribuídos Capítulo 8 - Aula 14

Comunicação entre Processos

Sistemas Operacionais II

Barramento. Prof. Leonardo Barreto Campos 1

Redes de Computadores I Internet - Conceitos

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

Arquitetura de Rede. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina: Redes de Computadores I

Programação concorrente (processos e threads)

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Sistemas Distribuídos

Comunicação de Dados II

Programação de Alto Desempenho - 2. Prof: Carla Osthoff

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

O que é um sistema distribuído?


Comunicação orientada a mensagens

SIST706 Sistemas Distribuídos

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.

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

Arquitetura de Software Parte 2/3-Estilos Arquiteturais. Jorge H. C. Fernandes Junho de 1999

Modelo de Camadas. Redes de Computadores

Aplicações com Banco de Dados e Cliente-Servidor

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

STD29006 Sistemas Distribuídos

Infra-Estrutura de Software

SPEEDMiddleware - MOM

Data and Computer Network Endereçamento IP

Funcionalidade e Protocolos da Camada de Aplicação

Redes de Computadores

Java Message Service (JMS)

Redes de Computadores

Introdução aos Sistemas Operacionais

Arquiteturas de Protocolos. Aplicação. Redes. Aplicações cliente-servidor. Aplicações peer-to-peer

Prof. Marcelo Cunha Parte 6

Parte I: Introdução. O que é a Internet. Nosso objetivo: Visão Geral:

Redes de Computadores. Alan Santos

Sistemas Distribuídos e Redes de Sensores. abril de 2013

: TMS M

Comunicação Objetos Distribuídos e RMI

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Sistemas Distribuídos

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

PTC Aula Princípios das aplicações de rede 2.2 A Web e o HTTP. (Kurose, p ) (Peterson, p ) 21/03/2017

Conceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1

Arquitetura de Computadores. Processamento Paralelo

Sistemas Operacionais

Protocolos de Redes de Computadores

PMR3507 Fábrica digital

Transcrição:

1 Vamos fazer um pequeno experimento Dividam-se em dois grupos: Mestre Escravo

Projeto de Sistemas Distribuídos Comunicação entre Processos Prof. Msc. Marcelo Iury de Sousa Oliveira marceloiury@gmail.com http://sites.google.com/site/marceloiury/

3 Porque processos se comunicam?

4 Se comunicam porque... Em muitos casos os processos necessitam trocar informação de forma controlada para dividir tarefas aumentar da capacidade de processamento sincronizar a execução de cada um. Além disso, possibilitar o compartilhamento de: Memória; Arquivos; Dispositivos de E/S; Etc.

5 Formas de Comunicação Há diversas formas que possibilitam a comunicação entre processos Memória Compartilhada Sistema de Arquivos Base de Dados Chamada de Procedimento Remota Middleware orientado a mensagens Fluxo de dados O problema é escolher!!!!

6 Memória Compartilhada Os processos compartilham variáveis e trocam informações através do uso de variáveis compartilhadas. Vantagens: Desempenho Desvantagens: Limitação de escala Sincronização

Sistema de Arquivos Os processos compartilham e trocam informações através do arquivos Alguns grids computacionais, sistemas Web funcionam dessa maneira É possível usar sistemas de arquivos distribuídos ou de rede NFS, AFS Vantagens Simplicidade Desvantagens Segurança Difícil pesquisa 7

8 Bases de Dados Processos se comunicam por meio de repositório comum (passivo ou ativo); Normalmente, através de um SGBD Vantagens Interface rica Facilidade Desvantagens Gerência

9 Formas Baseadas em Rede Os processos compartilham informações através de troca de mensagens ( passing messages). Neste modelo, o S.O é responsável pelo mecanismo de comunicação entre os processos. Necessário escolher o modelo de comunicação e o protocolo a ser utilizado. Por que????

10 Modelos de Comunicação Modelos de comunicação entre aplicações Difusão ( broadcast ) : o emissor envia a mesma informação a todos os restantes processos receptores. Produtor-consumidor: comunicação uni-direccional, com o produtor a entregar mensagens ao consumidor. Cliente-servidor : cliente controla totalmente o servidor. Caixa de correio : as mensagens podem ser lidas por um processo receptor sem o emissor (um entre vários) poder controlar o processo que recolhe a mensagem. Diálogo : dois processos acordam canal temporário para troca de mensagens durante uma sessão

11 Protocolos de Comunicação Protocolo : regras de troca de mensagens entre os intervenientes. As partes envolvidas precisam concordar em utilizar o mesmo idioma!!! Exemplos de protocolos definidos no modelo cliente-servidor: HTTP para WWW. SMTP para transferência de Email entre nós POP3 para utilizador recolher mensagens Email guardadas num ISP-Internet Service Provider.

12 Programação da comunicação: modelo Processo porta Canal de comunicação porta Processo API da comunicação rede transporte rede enlace físico modo de programador modo sistema

13 Primitivas Básicas send: utilizada por um processo para enviar uma msg. Pode ser bloqueante ou não bloqueante. receive: utilizada por um processo para receber uma msg. Essa operação é bloqueante, o processo que a executa fica bloqueado até o recebimento de uma mensagem. reply: usada por um processo para responder a uma mensagem recebida. Pode conter uma informação de resposta ou simplesmente pode indicar que uma mensagem enviada com uma operação send foi recebida sem erros. A operação reply é não bloqueante.

14 Isso quer dizer que vocês vão ter que enviar as mensagens na mão?

15 Chamadas de Procedimento Remoto (RPC) Permite a chamada de um procedimento em uma máquina por um programa sendo executado em outra máquina. Funcionamento: 1. Um programa em uma máquina P, (o cliente) chama um procedimento em uma máquina Q, (o servidor) enviando os parâmetros adequados. 2. O cliente é suspenso e a execução do procedimento começa. 3. Os resultados são enviados da máquina Q para a máquina P e o cliente é acordado.

16 Chamadas de Procedimento Remoto (RPC) Facilita a vida do programador que não tem que se preocupar em marshalling dos dados O que é mesmo marshalling?

17 Chamada de Procedimento Remoto Principais problemas: Chamador e procedimento executam em máquinas diferentes, executando em espaços de endereço diferentes; Necessário passar parâmetros e resultados; Em caso de falhas, cada uma das possíveis falhas causa problemas diferentes. Problemas com firewall

18 Comunicação Orientada a Mensagem Quando não se pode adotar que o lado receptor está executando no momento em que uma requisição é emitida, o que fazer? Troca de mensagens. Interface Berkeley Interface Sockets XTI (X/Open Transport Interface) Interface de troca de mensagens (MPI)

19 Interface de troca de mensagens (MPI) MPI foi projetada para aplicações paralelas, para comunicação transiente, fazendo uso direto da rede subjacente, e considera que falhas sérias como quedas de processos ou partições da rede sejam fatais e não requeiram recuperação automática. A comunicação ocorre dentro de um grupo conhecido de processos.

20 Middleware Conjunto reusável e expansível de serviços e funções comumente necessários por parte de várias aplicações para funcionarem bem em um ambiente de rede. Modelos Message-Oriented Middleware (MOM) MPI Object-Oriented Middleware RMI

21 Middleware Facilita o desenvolvimento de aplicações distribuídas. Cliente Servidor Middleware Middleware

Object-Oriented 22 Middleware Permite objetos invocar transparentemente métodos de outros objetos (que podem estar em máquinas diferentes objetos remotos) Libera o programador de tratar de detalhes como endereçamento e codificação/ decodificação de mensagens

Object-Oriented 23 Middleware OBJ SERVER STUB SKEL Object Request Broker

24 Middleware Orientado a Mensagens Comunicação distribuída baseada em um modelo de interação assíncrona A comunicação é efectuada através de mensagens que são transmitidas, ou pela estrutura cliente/servidor pura (usando broadcast ou multicast), ou entre pilhas Vantagens: Comunicação assíncrona. A MOM usa uma aproximação send and forget. Desvantagens: Modelo de programação não trivial

25 Middleware Orientado a Mensagens Se comunicam inserindo mensagens em filas específicas: O remetente tem a garantia que, a certa altura, sua mensagem será inserida na fila do receptor. Não há garantias QUANDO ou SE a mensagem será lida pelo receptor! Comunicação fracamente acoplada em relação ao tempo.

26 Outras Formas de Comunicação Fluxo de dados A temporização desempenha papel crucial. Fluxo de áudio (mono/stereo); Fluxo de vídeo e áudio; Fluxos de dados são, portanto, seqüências unidades de dados. Comunicação Multicast

27 Qual mecanismo escolher?

28 Você precisa analisar o problema para depois escolher!

29 Questões de implementação Como são estabelecidos os canais? Um canal pode estar associado a mais de dois processos? Quantos canais podem existir entre cada par de processos? Qual é a capacidade de um canal? Um canal pode acomodar mensagens de tamanho variáveis? O canal é unidirecional ou bidirecional?