Sistemas Distribuídos

Documentos relacionados
falhas em sistemas distribuídos

Comunicação entre Processos

Sistemas Distribuídos Aula 10

Modelos Fundamentais. Introdução. Interação. Falhas. Segurança. Prof. Adriano Fiorese

Sistemas Distribuídos

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

Sistemas Distribuídos

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

Vamos fazer um pequeno experimento

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Modelos Fundamentais de um SD. Modelo de Interação ou Sincronismo

Sistemas Distribuídos Capítulo 8 - Aula 15

Comunicação entre Processos

Sistemas Distribuídos Aula 13

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

Sistemas Distribuídos Capítulo 8 - Aula 14

COMUNICAÇÃO ENTRE PROCESSOS

Modelos Fundamentais de um SD. Modelo de Interação ou Sincronismo

Sincronização em Sistemas Distribuídos

Sincronização. Tempo e Relógios. Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Computadores e Programação (DCC/UFRJ)

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

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 2: MODELO OSI. Professor: LUIZ LEÃO

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

Programação Concorrente

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

Tempos e Estados Globais. ECO036 - Sistemas Paralelos e Distribuídos

Sistemas Operacionais Aula 3

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Sincronização de Relógios e Relógios Lógicos. Histórico da comunicação. Tempo Global. Mecanismos de ordenação total

Roteiro. Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua

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

Modelo de Comunicação

Organização de Computadores

Introdução a Redes e a Internet. Introdução ao Computador 2010/01 Renan Manola

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Sistemas Distribuídos Capítulo 8 - Aula 13

Organização e Arquitetura de Computadores

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

Protocolo PPP. Principais Componentes: Método para encapsular datagramas em enlaces seriais (Substitui o SLIP). Link Control Protocol (LCP)

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

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace

Sistemas de Entrada e Saída

Modelo de Programação Paralela

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

SSC510 Arquitetura de Computadores. 6ª aula

Sistemas de Troca de Mensagens

O que é? É uma aplicação que consiste em 2 ou mais processos que executam em diferentes processadores que não partilham memória.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Circuitos Sequenciais Escola Naval - Dep. Armas e Electrónica v

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

Comunicação. Parte II

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Transcrição:

Introdução: Comunicação, e Coordenação março de 2015

Comunicação entre Processos troca de mensagens é sempre a primitiva básica sobre essa primitiva podemos construir outras visões da comunicação

Mensagens Básicas send (destino, &mensagem) receive (origem, &mensagem) questões semântica de operações especificação de origem e destino formato da mensagem

semântica envio síncrono e assíncrono envio assíncrono: execução procede imediatamente bufferização

semântica envio síncrono e assíncrono envio síncrono: execução procede quando destinatário recebe mensagem determinismo

Variantes síncronas e assíncronas algumas bibliotecas oferecem primitivas com várias diferentes semânticas de garantia de envio

recebimento síncrono e assíncrono recebimento síncrono é o convencional execução procede quando há algo a tratar alternativa de recebimento com timeout bloqueio! suspensão da linha de execução corrente até chegada da mensagem

bloqueio e recebimento expĺıcito espera por mensagens de tipos específicos? podem haver outros tipos de mensagens pendentes espera por qualquer tipo de mensagem código se torna um enorme emaranhado

recebimento assíncrono orientação a eventos: chegada de mensagem é encarada como evento a ser tratado recebimento fica impĺıcito o recebimento impĺıcito é considerado um recebimento sem bloqueio outras formas de recebimento sem bloqueio serão discutidas mais tarde

Especificação de destino endereçamento direto (acoplamento) endereços e volatilidade serviços de nomes caixas de correios e canais (desacoplamento) endereços bem conhecidos comunicação com par qualquer

Formato de mensagens no nível mais baixo: sequências de bytes interpretação por conta do programa

Formato de mensagens apoio de bibliotecas ou linguagens a empacotamento e desempacotamento marshalling e unmarshalling abstrações em vários níveis

parciais A noção de falha parcial é fundamental nos SDs: a cooperação entre processos deve ser tolerante a falhas individuais

Nomenclatura problemas inevitáveis: falhas (faults) máquinas quebradas, desconexões, erros no software erros (failures): consequências dessas falhas nomenclaturas variam mas temos que manter consistente a idéia de evitar que falhas se transformem em erros

Nomenclatura omissão temporização falhas arbitrárias ou bizantinas

Dependabilidade termo clássico tolerância a falhas por vezes considerado enganador dependabilidade: idéia de que se pode confiar no sistema (apesar de possíveis erros) dependabilidade reliability availability safety security

Processos e enlaces Usaremos duas abstrações principais para representar o sistema físico: processos e enlaces Processos: abstraem entidades ativas e executam processamento (pode representar um computador, um processador, uma thread, etc.) Enlace: abstraem a rede de comunicação física lógica que permite a troca de mensagens entre processos

Coordenação processos em aplicação distribuída devem se coordenar para que aplicação progrida

Coordenação e Padrões utilização de padrões recorrentes de interação muitos problemas recaem em versões diversas do problema de acordo distribuído: ex., processos concordam sobre a ordem de tratamento de mensagens, se um evento ocorreu ou não, etc....assunto específico do curso de algoritmos distribuídos

Coordenação: acordo sobre hora hora certa é conceito extremamente útil para sincronizar atividades no mundo real em sistemas computacionais: ordenação depuração escalonamento de atividades medidas... necessidade de uma hora certa global

Relógios físicos cada máquina tipicamente tem um relógio físico circuito que gera interrupções a cada n oscilações relógios físicos exibem uma taxa de variação em relação a hora real hora relógio hora certa drift máximo tempo

Sincronização de relógios físicos interna diferença máxima entre horas de dois relógios do sistema externa diferença máxima entre horas de qualquer relógio do sistema e uma fonte externa

Algoritmos de sincronização de relógio trocas de mensagens repetidas para obtenção de diversas amostras protocolo NTP atualmente o mais difundido p hora corrente? hora = T q