Visão do Usuário da DSM



Documentos relacionados
Visão do Usuário da DSM

Introdução ao Modelos de Duas Camadas Cliente Servidor

Arquitetura dos Sistemas de Informação Distribuídos

Comunicação. Parte II

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

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Sistemas Distribuídos

Modelos de Arquiteturas. Prof. Andrêza Leite

Sistemas Distribuídos. Aleardo Manacero Jr.

SISTEMAS DISTRIBUÍDOS

Sistemas Operacionais. Conceitos de um Sistema Operacional

Sistemas Operacionais

Sistema Operacional Correção - Exercício de Revisão

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Sistemas Distribuídos

Introdução aos Computadores

Sistemas Operacionais

Considerações no Projeto de Sistemas Cliente/Servidor

Aula 03-04: Modelos de Sistemas Distribuídos

UFG - Instituto de Informática

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

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Sistemas Operacionais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

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

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Processos (Threads,Virtualização e Migração de Código)

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Comparativo de desempenho do Pervasive PSQL v11

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Fundamentos de Banco de Dados

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Figura 01 Kernel de um Sistema Operacional

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4


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


SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite

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

Conhecendo os usuários de um Sistema de Banco de Dados

Sistemas Distribuídos. Introdução

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Comparação SDs X Scs

Arquitetura de Banco de Dados

SISTEMAS OPERACIONAIS

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França

Disciplina de Banco de Dados Introdução

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Sistemas Operacionais

ESTUDO DE CASO WINDOWS VISTA

Características Carlos Ferraz

Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos

Sistemas Operacionais

Arquitetura de Sistemas Operativos

Fundamentos de Sistemas Computacionais Introdução

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Gerência de Entrada/Saída

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Organização e Arquitetura de Computadores I. de Computadores

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso

Definição São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos Grupos

Análises Geração RI (representação intermediária) Código Intermediário

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Documento de Análise e Projeto VideoSystem

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Um cliente de cada vez:

Tópicos Especiais em Redes de Telecomunicações

MODELO CLIENTE SERVIDOR

Padrões Arquiteturais e de Integração - Parte 1

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

ADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 1)

Sistemas Distribuídos

Processos e Threads (partes I e II)

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

SISTEMAS OPERACIONAIS

SISTEMAS DISTRIBUÍDOS

Prof. Luiz Fernando. Unidade III ADMINISTRAÇÃO DE

Unidade 1. Conceitos Básicos

Sistemas Distribuídos

Memória Compartilhada Distribuída 1

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Transcrição:

Memória Compartilhada Distribuída Visão Geral Implementação Produtos 1

Memória Compartilhada Distribuída Mecanismos tradicionais de comunicação via RPC/RMI ou mensagens deixam explícitas as interações entre processos Processos interagem para trocar dados de modo a manter um estado global consistente É possível abstrair completamente as interações entre processos, de modo que todos os processos de uma aplicação distribuída tenham acesso ao mesmo estado global, replicado localmente? 2

Memória Compartilhada Distribuída DSM (Distributed Shared Memory) Abstração usada para o compartilhamento de dados entre computadores que não compartilham memória física. Colouris, Dollimore & Kindberg Processos lêem e escrevem na memória compartilhada como se estivessem acessando seu espaço de endereçamento de memória Evita a necessidade de lidar diretamente com os mecanismos de comunicação, tornando a manutenção de estado global transparente 3

Memória Compartilhada Distribuída Visão do Usuário da DSM Distributed shared memory Process accessing DSM DSM appears as memory in address space of process Physical memory Physical memory Physical memory Coulouris, Dollimore & Kindberg 4

Memória Compartilhada Distribuída Principal Utilização: Computação de Alto Desempenho Com DSM, as máquinas de um sistema distribuído podem se comportar como se fossem um multiprocessador com memória compartilhada Usando DSM, programas desenvolvidos para multiprocessadores com memória compartilhada podem ser facilmente portados para multiprocessadores sem memória compartilhada, clusters e grids 5

Memória Compartilhada Distribuída Outras Formas de Utilização: Aplicações distribuídas nas quais dados são compartilhados e podem ser acessados diretamente pelos processos envolvidos Algumas aplicações do tipo cliente/servidor, onde o servidor pode compartilhar uma área de memória para acesso de todos os clientes 6

Memória Compartilhada Distribuída Vantagens Transparência: usuário não precisa lidar diretamente com mecanismos de comunicação Desenvolvimento: Programador lida com conceitos com os quais já está familiarizado Aplicações centralizadas podem ser facilmente paralelizadas/distribuídas 7

Memória Compartilhada Distribuída Limitações Suporte de execução: Faz atualizações na memória compartilhada Deve estar presente em todos os nós Desempenho: Acesso à DSM pode ser várias ordens de grandeza mais lento que o acesso à memória física, degradando o desempenho Desempenho é ruim principalmente quando há muitas alterações nos valores dos dados Faltas: um processo faltoso pode corromper os dados compartilhados e comprometer o funcionamento de todo o sistema 8

Memória Compartilhada Distribuída Comparação com outras tecnologias Dados são compartilhados diretamente por processos, não precisando ser passados como mensagens (MOM) ou parâmetros (RPC/RMI) Requer o uso de mecanismos de controle de concorrência para garantir a consistência dos dados na área de memória compartilhada 9

Implementação Implementação em Hardware Usada em arquiteturas de multiprocessadores do tipo NUMA (Non-Uniform Memory Access) Gupos de processadores (tipicamente 4), ligados por um barramento de alta velocidade, compartilham um banco de memória local Processos acessam espaço de endereçamento que reúne memória local e remota Acesso à memória remota é mais lento que o acesso à memória local Hardware especializado executa as instruções de acesso à memória, usando uma cache local e efetuando acesso remoto, se necessário 10

Implementação Implementação por Software Middleware é responsável por efetuar a comu- nicação entre os nós para manter a memória compartilhada atualizada e consistente Processos chamam o middleware para acessar dados compartilhados Requer comunicação entre os nós envolvidos Em geral não manipula endereços de memória diretamente, mas usa abstrações de alto nível, como variáveis/objetos compartilhados 11

Implementação Representação dos dados na DSM Cada implementação de DSM define o formato usado para representar dados compartilhados Formatos comumente utilizados: Bytes: devem ser transformados nos formatos de dados usados pela aplicação Tuplas: mantém tuplas de valores tipados em um espaço de tuplas; são imutáveis criadas, lidas e removidas, nunca alteradas Objetos: dados encapsulados manipulados através de invocações a métodos; limita a portabilidade entre plataformas/linguagens 12

Implementação Implementação Centralizada As páginas de memória compartilhadas são mantidos em um servidor central, que executa as operações requisitadas pelos clientes Veríssimo & Rodrigues 13

Implementação Implementação por Migração Páginas compartilhadas são migradas de um nó para outro; nó de posse da página executa localmente as operações desejadas Veríssimo & Rodrigues 14

Implementação Estratégias baseadas em Replicação Cada nó mantém uma cópia local dos dados Mais eficientes que as estratégias centralizada e por migração, pois permitem o acesso concorrente aos dados Exigem extremo cuidado para manter os dados consistentes e sincronizados Mecanismos de controle de concorrência (Locks,, monitores, semáforos...) devem ser usados para garantir a consistência 15

Implementação Estratégias baseadas em Replicação (cont.) Trocas de mensagens são efetuadas para manter os dados sincronizados Quando um dado for alterado por um nó, duas estratégias podem ser empregadas para sincronização das réplicas Atualizar todas as réplicas Invalidar as demais réplicas, obrigando que sejam atualizadas antes do próximo acesso 16

Implementação Replicação Somente-Leitura Dados podem ser lidos concorrentemente Alterações nos dados são coordenadas por um servidor, que atualiza/invalida as réplicas Veríssimo & Rodrigues 17

Implementação Replicação Leitura/Escrita Dados são lidos e alterados em paralelo Seqüenciador é responsável por atualizar/ invalidar cópias desatualizadas Veríssimo & Rodrigues 18

Comunicação Implementação A comunicação entre os nós pode afetar negativamente o desempenho das aplicações, principalmente quando for usada replicação Estratégias para diminuir a quantidade de mensagens enviadas pela rede: Aguardar que um nó faça todas as alterações necessárias nos dados antes de propagá-las Usar multicast para enviar atualizações O retardo causado pela propagação de mensagens na rede pode resultar em inconsistências momentâneas 19

Implementação Comunicação: efeitos do retardo a := 7; b := 7; if(b!=a) then print( depois"); tempo atualizações... tempo if(a=7) then b := b+1; if(b=a) then print( antes"); Coulouris, Dollimore & Kindberg tempo 20

Consistência Implementação A manutenção da consistência dos dados é crucial para o funcionamento da DSM Consistência seqüencial garante que todos os nós recebem as alterações na mesma ordem Garantir consistência seqüencial é dispendioso pois requer controle de concorrência e ordenação de mensagens Em alguns casos, certo grau de inconsistência é tolerado para obter um melhor desempenho no acesso à memória compartilhada 21

Implementação Consistência Seqüencial Processo 1 br := b; ar := a; if(ar br) then print ("OK"); leitura Tempo escrita Processo 2 a := a + 1; b := b + 1; Coulouris, Dollimore & Kindberg 22

Linda Produtos Linda [Gelernter, 1985] Linguagem que criou o conceito de espaço de tuplas (tuplespace)) distribuído Principais operações: In In: lê uma tupla e a remove do tuplespace Read: lê uma tupla (sem removê-la) Out: escreve uma tupla no tuplespace Implementada como biblioteca para outras linguagens: C, C++, Java, Python, Ruby,... Estendida para suportar múltiplos espaços de tuplas, notificação, definição de tipos/classes de tuplas, coleta de lixo, pattern matching,, etc. 23

JavaSpaces Produtos Implementação de espaço de tuplas em Java Parte da tecnologia Jini (Sun/Apache) Clientes conectam a servidores JavaSpaces Tuplas são objetos Java que implementam a interface net.jini.core..core.entry Tuplas possuem um tempo de vida ( (lease) Templates (tuplas que podem ter alguns campos null) ) são usados na leitura/remoção Acesso ao espaço de tuplas pode ser feito no escopo de uma transação atômica Suporta notificações de inserção de tuplas 24

Produtos Métodos do JavaSpace Escrita: write(tupla, transaction, lease); Leitura de uma tupla, sem remoção: read(template template, transaction, timeout); readifexists(template, transaction, txtimeout); Leitura de uma tupla, com remoção: take(template, transaction, timeout); takeifexists(template, transaction, txtimeout); Notificação: notify(template, transact, listener, timeout, id); 25

Produtos Outros Produtos DIPC, Kerrighed Alteram núcleo do Linux para suportar DSM GigaSpaces Implementação comercial do JavaSpaces, com espaços de tuplas replicados TreadMarks... Implementação de DSM com suporte a diversos sistemas operacionais 26