Visão do Usuário da DSM

Documentos relacionados
Visão do Usuário da DSM

TÓPICOS EM COMPUTAÇÃO APLICADA

Sistemas Distribuídos

Sistemas distribuídos. Prof. Emiliano Monteiro

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

SSC510 Arquitetura de Computadores. 8ª aula

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

Computação Distribuída

Programação Concorrente

Sistemas Distribuídos

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

SSC0611 Arquitetura de Computadores

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

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

Sistemas Distribuídos. Capítulo 7 - Aula 16

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

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

Sistemas Distribuídos

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

Características de Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos

Características de Sistemas Distribuídos

Carlos Eduardo Batista Centro de Informática - UFPB

Sistemas Distribuídos. Edy Hayashida

Infra-Estrutura de Software

SIST706 Sistemas Distribuídos

Sistemas Distribuídos baseados em Coordenação. Pedro Ferreira DI - FCUL

Projeto de Sistemas Distribuídos. Considerações

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

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

Processamento Paralelo & Multiprocessadores

SISTEMAS DISTRIBUÍDOS

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

Memória Compatilhada Distribuída. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Projeto de Sistemas Distribuídos. Considerações

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

Programação Distribuída. Metas de um Sistema Distribuído

Aula 2: Tipos de Sistemas Operacionais. Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela

Sistemas Distribuídos

Barramento. Prof. Leonardo Barreto Campos 1

Sistemas Distribuídos

Concorrência em Processos

Caracterização de Sistemas Distribuídos

Modelo de Programação Paralela

Linguagem de Programação II

Programação Paralela e Distribuída

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

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

Processamento Paralelo

Processos ca 3 pítulo

Sistema de Software Distribuído

TM X SM. Replicação de Variáveis Compartilhadas. Protocolo de Atualização Síncrono ORCA

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

MEMÓRIA COMPARTILHADA DISTRIBUÍDA

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

SSC0611 Arquitetura de Computadores

Definindo melhor alguns conceitos

Sistemas Distribuídos

Introdução aos Sistemas Distribuídos

Características de Sistemas de Arquivos Distribuídos Serviços de nomes e diretórios

Curso de Sistemas Distribuídos

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

Arquitetura de Computadores. Processamento Paralelo

SSC-0742 PROGRAMAÇÃO CONCORRENTE. Aula 04 Revisão de Arquiteturas Paralelas -Parte 2 Prof. Jó Ueyama e Julio Cezar Estrella

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Organização e Arquitetura de Computadores I

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

Sistemas de Memória Cache para Multiprocessadores

Sistemas Distribuídos Aula 3

Sistemas Distribuídos

O Modelo Síncrono BSP para Computação Paralela

Curso: Redes de Computadores

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

Sistemas Distribuídos Aula 10

Aula 03. Evandro Deliberal

Introdução à Computação: Sistemas de Computação

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.

Sistemas Distribuídos

Sistemas Distribuídos

Comunicação entre Processos

Caracterização de Sistemas Distribuídos

O que é um sistema distribuído?

Sistemas Distribuídos

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

Sistemas Distribuídos

SSC PROGRAMAÇÃO CONCORRENTE. Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella

INE/UFSC LCMI/DAS/CTC/UFSC

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

Multiprocessadores & Multicomputadores

Sistemas de Informação. Sistemas Operacionais

Vamos fazer um pequeno experimento

Estruturas de Sistemas Operacionais

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

UNIVERSIDADE ESTADUAL VALE DO ACARAÚ- UEVA. Assunto: Programação Concorrente.

Introdução. capítulo

Transcrição:

Memória Compartilhada Distribuída Visão Geral 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? 1 2 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 Visão do Usuário da DSM Process accessing DSM Distributed shared DSM appears as in address space of process Coulouris, Dollimore & Kindberg 4 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 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 1

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 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 7 8 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 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 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 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 2

Centralizada As páginas de memória compartilhadas são mantidos em um servidor central, que executa as operações requisitadas pelos clientes 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 13 14 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 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 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 Replicação Leitura/Escrita Dados são lidos e alterados em paralelo Seqüenciador é responsável por atualizar/ invalidar cópias desatualizadas 17 18 3

Comunicaçã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 Comunicação: efeitos do retardo a := 7; b := 7; if(b!=a) then print( depois"); Coulouris, Dollimore & Kindberg atualizações if(b=a) then print( antes"); if(a=7) then b := b+1;... 20 Consistência 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 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 [Gelernter, 1985] Linguagem que criou o conceito de espaço de tuplas (tuplespace)) distribuído Principais operações: 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 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 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 4

Métodos do JavaSpace Escrita: write(tupla, transaction, lease); Leitura de uma tupla, sem remoção: read(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 Outros DIPC, Kerrighed Alteram núcleo do Linux para suportar DSM GigaSpaces comercial do JavaSpaces, com espaços de tuplas replicados TreadMarks de DSM com suporte a diversos sistemas operacionais... 26 5