Processos em Sistemas Distribuídos e Comunicação entre Processos

Documentos relacionados
Processos em Sistemas Distribuídos: Comunicação entre Processos, Nomeação e Sincronização

Comunicação entre Processos

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

Sistemas Distribuídos Capítulo 3 - Aula 3

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

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha

Sistemas Distribuídos

Sistemas Operacionais

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

Programação com Sockets

Redes de Computadores e Aplicações

Sistemas Distribuídos Aula 10

Barramento. Prof. Leonardo Barreto Campos 1

Fundamentos de Sistemas Operacionais

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

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

Sistemas Operacionais

SISTEMAS DISTRIBUÍDOS PROCESSOS. Slides cedidos pela professora Aline Nascimento

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

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

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

Padrões Arquitetônicos

Sistemas Distribuídos

Vamos fazer um pequeno experimento

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais

Processos ca 3 pítulo

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

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

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

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

Camada de Aplicação da Arquitetura TCP/IP

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Sistemas Distribuídos

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

Prof. Marcelo Cunha Parte 6

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

Sistemas Operacionais. Sistema de entrada e Saída

INTRODUÇÃO. RPC x RMI

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

Sistemas de Troca de Mensagens

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

Canais de Comunicação

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

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Sistemas Operacionais. Capítulo 5 Processos

Sistemas de Entrada e Saída

Sistemas Distribuídos: Conceitos e Projeto RPC e RMI

Sistemas Operacionais

SISTEMAS DISTRIBUIDOS

Sistemas de Entrada e Saída

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Redes de Computadores

Redes de Computadores. Protocolos TCP/IP

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Web Services REST e JSON

Principais conceitos de CORBA

Sistemas Operacionais. Processos e Threads

Rede de computadores Protocolos UDP. Professor Carlos Muniz

Estrutura dos Sistemas Operacionais. Sérgio Portari Júnior

Introdução à Informática

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

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

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Preparação AV3 Fundamentos de Redes de Computadores

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Figura 01 Programa e Processo

Redes de Computadores

Sistemas Distribuídos

Informática I. Aula 2. Ementa

Processos e Threads. Ciclo 2 AT3. Prof. Hermes Senger

Aplicações Multimídia sobre Redes

Web Services REST. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Desenvolvimento de Aplicações Distribuídas

Transcrição:

Processos em Sistemas Distribuídos e Comunicação entre Processos Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão

Objetivos Nesta aula iremos apresentar os conceitos sobre Processos/Threads sob o aspecto dos Sistemas Distribuídos. Iremos abordar também os elementos de comunicação entre Processos/Threads. No aspecto da comunicação também iremos abordar a representação dos dados trocados entre as entidades.

Plano de Aula Processos em Sistemas Distribuídos e Comunicação entre Processos Introdução Processos Threads Características da comunicação entre processos Representação externa de dados e empacotamento

Processos em Sistem. Distribuídos Introdução Os computadores executam várias operações ao mesmo tempo: Por exemplo, compilar um programa, enviar um arquivo para a impressora, exibir uma página Web, reproduzir músicas e receber mensagens de correio eletrônico; Os processos permitem que os sistemas executem e monitorem atividades simultâneas; Os processos transitam entre estados de processo; Os sistemas operacionais executam operações por meio de processos, como criar, destruir, suspender, retomar e acordar.

Processos em Sistem. Distribuídos Processos Informações necessárias para execução de processo: Contexto de hardware: estado do hardware no momento em que o processo é interrompido para ceder lugar a um outro processo em execução (mudança de contexto); Ex: registradores; Contexto de software: características e limites dos recursos que podem ser alocados pelo processo; Ex: identificação do processo (PID), usuário dono do processo, tamanho máximo em RAM que o processo pode alocar, tamanho máximo do buffer para operações de I/O. Espaço de endereçamento: endereço da memória principal alocado para armazenamento de instruções e os dados utilizados pelo processo;

Processos em Sistem. Distribuídos Processos owner (UID) nome PID registradores gerais prioridade de execução registrador PC data/ hora de criação Contexto de Software Contexto de Hardware tempo de processador registrador SP quotas privilégios Programa Espaço de Endereçamento registrador de status endereços de memória principal alocados

Processos em Sistem. Distribuídos Processos Único fluxo de execução? Um servidor de arquivos deve esperar por requisições feitas ao disco. O fluxo de execução que fez a requisição é bloqueado aguardando a resposta. (PERDA DE DESEMPENHO); Solução: Vários Fluxos de Execução Se o servidor de arquivos é implementado usando diferentes fluxos de execução, outras requisições de clientes podem ser processadas, enquanto o primeiro fluxo aguarda a resposta do disco. MELHOR VAZÃO (THROUGHPUT) E GANHO DE DESEMPENHO;

Processos em Sistem. Distribuídos Threads Partes de um processo que compartilham mesmo espaço de endereçamento; Sub-rotina de um programa executado paralelamente ao programa chamador (execução concorrente de subrotinas); Mais uma definição: Enquanto processos permitem que o sistema operacional execute mais de uma aplicação ao mesmo tempo, as threads permitem que a aplicação execute mais de um método ao mesmo tempo.

Processos em Sistem. Distribuídos Threads Cada um dos fluxos de execução de um processo é chamado de thread; Threads podem ser vistas como mini-processos; Cada thread executa sua própria porção de código; Threads compartilham a CPU do mesmo modo que diferentes processos (timesharing);

Processos em Sistem. Distribuídos Implementação de Threads em Sistemas Distribuídos Importante propriedade de threads é que eles podem proporcionar um meio conveniente de permitir chamadas bloqueantes de sistema sem bloquear o processo inteiro; Threads são particurlamente atraentes para utilização em sistemas distribuídos facilitam muito expressar comunicação na forma de manter múltiplas conexões lógicas ao mesmo tempo;

Processos em Sistem. Distribuídos Clientes Multithreads Sistemas distribuídos que operam em redes de longa distância escondem longos tempos de propagação de mensagens entre processos; A maneira de ocultar latências de comunicação é iniciar a comunicação e imediatamente prosseguir com outra atividade; Clientes Multithreads Browsers Web Documento Web consiste em: texto, imagens, ícones, etc. A cada elemento, browser estabelece uma conexão TCP/IP, para ler os dados e passar ao monitor do usuário; No entanto temos algumas operações bloqueadoras: estabelecimento da conexão, leitura de dados;

Processos em Sistem. Distribuídos Clientes Multithreads Browsers começam a exibir dados enquanto a medida em que novas informações chegam; Enquanto o texto está sendo disponibilizado para o usuário, incluindo as facilidades de rolamento, p.ex., o browser continua buscando outros arquivos, como imagens; Vantagem: usuário não precisa esperar até que todos os componentes sejam buscados; Browser como clientes multithread simplifica, pois: Threads separados são ativados para se encarregar de buscar diferentes partes de uma página; Caso o servidor esteja em sobrecarga, ter um cliente multithread possibilita estabelecer conexões com diferentes servidores, permitindo transmissão dos dados em paralelo;

Processos em Sistem. Distribuídos Servidores Multithreads Funcionamento de servidores multithreads: Requisições são enviadas por clientes para uma porta no servidor; Thread despachante lê requisições que entram para uma operação de arquivo; Servidor escolhe um thread operário; Se o thread escolhido estiver suspenso, outro thread é selecionado para ser executado: p.ex., o thread despachante pode ser selecionado para adquirir mais trabalho;

Processos em Sistem. Distribuídos Servidores Multithreads Funcionamento de servidores multithreads;

Processos em Sist. Distribuídos Características da comunicação entre processos A passagem de mensagens entre um par de processos pode ser suportada por duas operações de comunicação de mensagem: send e receive; Para que um processo se comunique com outro, um deles envia um (send) uma mensagem (uma sequencia de bytes) para um destino e o outro processo, no destino, recebe (receive) a mensagem.

Processos em Sist. Distribuídos Características da comunicação entre processos Comunicação Síncrona Na comunicação síncrona os processos remetente e de destino são sincronizados a cada mensagem; Send e Receive são operações que causam bloqueio; Quando um envio (send) é realizado, o processo remetente (ou thread) é bloqueado até que a recepção (receive) correspondente seja realizada; Quando uma recepção é executada, o processo (ou thread) é bloqueado enquanto a mensagem não chegar.

Processos em Sist. Distribuídos Características da comunicação entre processos Comunicação Assíncrona Na comunicação assíncrona o uso da operação send é não bloqueante; O processo remetente pode prosseguir assim que a mensagem tenha sido copiada para o buffer; A operação receive pode ter variantes com e sem bloqueio;

Processos em Sist. Distribuídos Características da comunicação entre processos Soquetes As duas formas de comunicação (UDP e TCP) usam a abstração de soquete, um ponto de destino para a comunicação entre processos; A API de Soquetes é uma das mais difundidas para programação sobre a arquitetura TCP/IP.

Processos em Sist. Distribuídos Características da comunicação entre processos Soquetes e Portas Um processo pode usar o mesmo soquete para enviar e receber; Um processo não pode compartilhar portas com outros processos.

Processos em Sist. Distribuídos Características da comunicação entre processos Comunicação por UDP Um datagrama enviado pelo protocolo UDP é transmitido de um processo origem para um processo destino sem a existência de confirmação ou novas tentativas de envio; Se ocorrer uma falha, a mensagem poderá não chegar; Para algumas aplicações, é aceitável usar um serviço que esteja exposto a falhas por omissões ocasionais (serviços executados sobre UDP): Domain Name Service; Voicer Over IP (VoIP);

Processos em Sist. Distribuídos

Processos em Sist. Distribuídos

Processos em Sist. Distribuídos Características da comunicação entre processos Comunicação por TCP A API do protocolo TCP fornece abstração de um fluxo de bytes no qual dados poder lidos (receive) e escritos (send); A API TCP pressupõe que, quando dois processos estão estabelecendo uma conexão, um deles desempenha papel de cliente e outro de servidor, mas daí em diante eles poderiam ser iguais; Muitos serviços são executados em conexões TCP com números de porta reservados: HTTP, FTP, Telnet, SMTP, etc.

Processos em Sist. Distribuídos

Processos em Sist. Distribuídos

Processos em Sist. Distribuídos Representação externa de dados e empacotamento As informações armazenadas nos programas em execução são representadas como estruturas de dados; Independente da forma de comunicação usada, as estruturas de dados devem ser simplificadas (convertidas em uma sequência de bytes) antes da transmissão e reconstruídas na sua chegada; Dificuldade na representação de dados: big-endian / little-endian Caracteres ASCII / padrão unicode Valores em ponto flutuante (expoente e parte fracionária) Solução: Conversão para um formato de dados de comum acordo (external Data Representation XDR)

Processos em Sist. Distribuídos Representação externa de dados e empacotamento

Processos em Sist. Distribuídos Representação externa de dados e empacotamento Formato independente de linguagem, Sistemas Operacionais, etc; Utilizada para comunicação dos dados de requisições e respostas entre clientes e servidores; Formato serializado; Marshalling: conversão entre a representação interna e externa: CORBA Common Data Representation Serialização de objetos em Java XML (Extensible Markup Language)

Processos em Sist. Distribuídos Marshalling Processo de converter uma coleção de dados e organizálos em um formato próprio para transmissão: Unmarshalling é o processo oposto Ideal não haver o envolvimento explícito da aplicação (transparência): Responsabilidade do middleware Duas técnicas básicas: Conversão dos dados para um formato binário Conversão dos dados para um formato texto (ASC II) Serialização Java e XML

Processos em Sist. Distribuídos CORBA CDR Representação para tipos primitivos inteiros, ponto flutuante, octeto; big-endian e little-endian; posicionamento de cada item de dados na msg. Representação para tipos construídos sequencia, string, array, struct, enumeração, união; construída a partir das seqüências de bytes correspondentes aos tipos primitivos constituintes. Informação de tipo: subentendida através da definição das operações em IDL. Uma mensagem CORBA CDR possui apenas valores, sem informação dos tipos de dados. As extremidades devem saber disso.

Processos em Sist. Distribuídos Mensagem em CORBA CDR

Processos em Sist. Distribuídos Serialização em Java Transformação de um objeto Java para uma sequencia de bytes; Informações de tipo e classe dos objetos são incluídas na forma serializada: Permitem a reconstrução dos objetos sem conhecimento prévio de suas classes. Processo recursivo: serializa todos os objetos referenciados pelo objeto em questão; Classes precisam implementar a interface Serializable; Objetos remotos: a referência é serializada.

Processos em Sist. Distribuídos Serialização em Java

Processos em Sist. Distribuídos Serialização em Java

Processos em Sist. Distribuídos XML Linguagem de marcação assim como HTML; Os itens de dados são rotulados com strings de marcação; Diferente do HTML, permite que os usuários definam suas próprias tags (Extensível); Usos de interesse aqui: definir a interface de serviços Web prover a representação externa de dados na comunicação entre clientes e serviços Representação textual: independente de plataforma; Representação hierárquica; Textual e Auto-descritiva: tags, esquemas e namespaces; Desempenho inferior comparado com Serialização.

Processos em Sist. Distribuídos Person em XML

Processos em Sist. Distribuídos NameSpace

Processos em Sist. Distribuídos Schema

Dúvidas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva

Próxima Aula Nomeação e Sincronização

Referências Sistemas Distribuídos - Conceitos e Projeto, George Coulouris, 4ª Edição - Editora Bookman, 784 páginas.