TÓPICOS EM COMPUTAÇÃO APLICADA

Documentos relacionados
Visão do Usuário da DSM

Características de Sistemas Distribuídos

Sistemas distribuídos. Prof. Emiliano Monteiro

Características de Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

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

Sistemas Distribuídos

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

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

Sistemas Distribuídos

SSC0611 Arquitetura de Computadores

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

Processos ca 3 pítulo

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

Conceitos de Sistemas Distribuídos

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

Sistemas Distribuídos

Computação Distribuída

Sistemas Distribuídos

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

Carlos Eduardo Batista Centro de Informática - UFPB

Alcides Pamplona

Sistemas Distribuídos Capítulo 3 - Aula 3

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

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

Sistemas Operacionais Distribuídos e Multiprocessados

Caracterização de Sistemas Distribuídos

Introdução (hardware) INTRODUÇÃO Hardware. Introdução (hardware) Introdução (hardware) Introdução (hardware) Introdução (hardware)

Organização de Computadores II. Arquiteturas MIMD

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

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

Arquitetura de Computadores. Processamento Paralelo

SISTEMAS OPERACIONAIS

Sistemas Operacionais

Formação de DBAs SQL Server 2008

Introdução aos Sistemas Distribuídos

Programação Concorrente

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

Bancos de Dados Distribuídos. Gabriel Resende Gonçalves 4 de fevereiro de 2014

Sistemas Distribuídos

Visão do Usuário da DSM

Sistemas Distribuídos

Top. Esp em Banco de Dados

Sistemas de Bancos de Dados Distribuídos

Sistemas de Bancos de Dados Distribuídos

Sistemas Operacionais Distribuídos

Estruturas de Sistemas Operacionais

Universidade Federal do Maranhão

O que é um sistema distribuído?

Curso: Redes de Computadores

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

Concorrência em Processos

Vamos fazer um pequeno experimento

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

Arquiteturas para SGBD. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

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

Sistemas Distribuídos

Processamento Paralelo

Sistemas Operacionais (SO)

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

Curso de Sistemas Distribuídos

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

Sistemas Distribuídos. Edy Hayashida

Bancos de Dados Distribuídos

Infra-Estrutura de Software

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

Protótipo tipo de um sistema de arquivos para ambiente distribuído

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

Barramento. Prof. Leonardo Barreto Campos 1

SSC0640 Sistemas Operacionais I

Quando Distribuir é bom

Introdução à Informática

SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

Sistemas de Informação. Sistemas Operacionais

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

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

Linguagem de Programação II

Sistemas Operacionais. Sistema de entrada e Saída

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

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

Sistema de Software Distribuído

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

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

Sistemas Distribuídos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Introdução aos Sistemas Operacionais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Algoritmos e Lógica de Programação Sistemas Operacionais

Quando Distribuir é bom

Modelo de Programação Paralela

Capítulo 6 Nível do Sistema Operacional

ÍNDICE. Redes de Computadores - 1º Período de Cap 12 - Fls. 1

SIST706 Sistemas Distribuídos

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

Desenvolvimento de Aplicações Distribuídas

Fundamentos de Sistemas Operacionais

Transcrição:

TÓPICOS EM COMPUTAÇÃO APLICADA Aula 6 Tecnologias para Sistemas Distribuídos Bacharelado em Ciência da Computação Professor MSc. Ariel da Silva Dias Complexo Educacional FMU Filosofia Computadores estão se tornando cada vez mais baratos e rápidos; Falta aumentar o desempenho em rede de computadores; Necessita de lidar com hardware fisicamente distribuído e usando software logicamente centralizado; Prover a sensação de um único e simples computador com sistema com time-sharing; 1

Objetivo Deve ser pequeno; Simples de usar; Escalabilidade para um grande número de processadores; Bom grau de tolerância a faltas; Alto desempenho; Possibilidade de paralelismo; Transparente para os usuários. Arquitetura Workstations; Pool de processadores; Servidores Especializados Arquivo; Base de dados; Diretórios; Etc. Gateway. 2

Arquitetura Arquitetura Workstation Uma por usuário; Onde os usuários realizam suas tarefas; Estas podem ser da SUN, IBM, PC/AT e terminais X. 3

Arquitetura Pool de Processadores Grupo de CPUs; CPU pode ser dinamicamente alocada e depois retorna ao pool; Oferece a possibilidade de processamento paralelo. Arquitetura Servidores Especializados Servidor de diretório; Servidor de arquivo; Servidor de boot; Servidor de banco de dados; Etc. 4

Arquitetura Gateways Liga sistemas Amoeba em diferentes lugares em um sistema único e uniforme; Isola o sistema AMOEBA das peculiaridades dos protocolos de rede que devem ser usados sobre WANs Arquitetura AMOEBA Kernel Todas as máquinas AMOEBA rodam o mesmo kernel; O kernel é responsável pelo gerenciamento da memória, IO, comunicação entre processos, primitivas de objeto, processamento básico e multithreading; O objetivo é manter o kernel o menor possível para aumentar a confiança e permitir ao SO rodar como se fosse um processo de usuário. 5

Remote Procedure Call É utilizado para a comunicação entre cliente e servidor; Os processos de usuário enviam uma mensagem de pedido para o servidor que gerencia um objeto; O pedido contém a capacidade do objeto, a operação a ser realizada e alguns parâmetros; Remote Procedure Call Interface RPC é construída sobre o protocolo FLIP; O RPC é baseado em 4 primitivas Getreq get requisition; Putreq put requisition; Trans transaction; Timeout time out. 6

FLIP (Fast Local Internet Protocol) foi desenvolvido por Andrew Tanenbaum; Seu objetivo é otimizar a velocidade das RPCs do sistema; FLIP também prove automaticamente o menor roteamento de mensagens e prove automaticamente a passagem entre gateways de redes conectadas. Getreq Usada por servidores; O servidor inicializado, realiza uma operação de getreq com a porta que deseja ouvir; Getreq bloqueia o servidor até que um cliente envie um pedido utilizando a operação trans; Quando um pedido chega, o servidor checa se a capacidade é válida e se tem privilégios suficientes. 7

Trans Usada pelos clientes para enviar pedidos ao servidor; A porta do servidor é o primeiro parâmetro da operação trans; A operação trans bloqueia o cliente até que o servidor mande uma resposta; O kernel no qual a operação trans é executada tenta localizar o servidor transmitindo por broadcasting o pedido juntamente com a porta. Timeout Usado para informar a quantidade de tempo gasta procurando um servidor para atender uma operação trans; Timeout padrão é de 5 segundos. 8

Programação Cliente/Servidor Não é necessário que a programação do cliente ou do servidor se preocupe com a preparação de dados ou rotinas de transporte na rede; A própria AIL(AMOEBA Interface Language) gera esse código automaticamente; Servidores podem executar processos multithreaded mas isso não é obrigatório. Threads Cada processo tem seu próprio espaço de endereço e contém múltiplas threads; Essas threads tem suas próprias pilhas e descritor de processos, mas compartilha os dados globais e o código. 9

Diretório Nome de arquivos não implementados pelo servidor de arquivo; Muito mais tipo de objetos que arquivos, então a necessidade de um serviço de nome geral; Servidor de diretórios implementa o serviço de nomes, implementando um grafo direcionado arbitrário de diretórios Diretório Manipula os nomes de arquivos; Objeto diretório é uma lista de pares Os pares são formados de uma string para o nome e um conjunto de capacidades; Um grau de tolerância extra é alcançado pela duplicação do servidor de diretórios que se comunicam entre si para manter a integridade dos diretórios; É o único que conhece a localização física do arquivo; 10

Arquivo O servidor de arquivos é conhecido como Bullet Server; Armazena os arquivos contiguamente no disco, para dar ao sistema uma alta performance; Servidores de arquivos são imutáveis: uma vez que criados não podem ser mudados. Pontos importantes O sistema é gratuito; Ele não teve uma atualização oficial em 10 anos; Pode-se utilizar CPUs mais antigas e lentas para criar um sistema poderoso; Microkernel permite que outros sistemas de arquivos sejam criados; 11

Pontos importantes Possui 4 objetivos principais Distribuição; Paralelismos; Transparência; Desempenho Tem muitos comandos e programas parecidos com o UNIX; Pode manipular programas tão grandes quanto a sua memória física. BANCO DE DADOS DISTRIBUÍDOS Banco de dados distribuídos Conjunto de vários BD logicamente interrelacionados, fisicamente separados, dispersos geograficamente e distribuídos por uma rede de computadores; SGBD Distribuído Sistema que possibilita o gerenciamento dos bancos de dados distribuídos e que transforma a distribuição dos dados de forma clara para os usuários, como se fosse um sistema centralizado (transparência). 12

BANCO DE DADOS DISTRIBUÍDOS SBDD (Sist. de banco de dados distribuídos) Conjunto entre os bancos de dados distribuídos e os SGBDs distribuídos; BANCO DE DADOS DISTRIBUÍDOS Tipos de SGBDs distribuídos Homogêneo - os SGBDs locais são semelhantes em todos os sites, ou a estrutura do banco de dados é igual em todos os sites Oferece interface idêntica (ou da mesma família) e fornece os mesmos serviço à usuários em diferentes sites; 13

BANCO DE DADOS DISTRIBUÍDOS Tipos de SGBDs distribuídos Heterogêneo - pode existir dois ou mais SGBDs diferentes espalhados entre os sites ou a estrutura do banco de dados também é diferente Existe quando há a necessidade de integrar sistemas já existentes; É necessário fazer uma conversão entre os SBDDs; BANCO DE DADOS DISTRIBUÍDOS Distribuição dos dados no SBDD Particionar Particionando, o banco de dados se separa em diversas partições disjuntas, e cada partição é colocada em um site. Replicar Totalmente: cópias do banco de dados inteiro são armazenados em cada site; Parcialmente: cada partição do banco de dados é armazenado em mais de um site 14

BANCO DE DADOS DISTRIBUÍDOS Características Transparência na gerência dos dados distribuídos: separação de um sistema de alto nível e os detalhes de implementação. O objetivo é que se tenha uma independência de dados. Transparência da rede; Transparência da replicação; Transparência da fragmentação BANCO DE DADOS DISTRIBUÍDOS Características Maior confiabilidade na transação de dados distribuídos: o SBDD funciona de acordo com o projeto; 15

BANCO DE DADOS DISTRIBUÍDOS Características Maior desempenho em consultas: podem ser executas em paralelo as subconsultas; BANCO DE DADOS DISTRIBUÍDOS Características Expansão do sistema: facilidade em adaptar ao crescimento da base de dados; 16

BANCO DE DADOS DISTRIBUÍDOS Características Utilização por maior quantidade de usuários ao mesmo tempo. BANCO DE DADOS DISTRIBUÍDOS Características negativas Processamento de consultas distribuídas e otimização necessita de algoritmos adequados; Dificuldade no seu desenvolvimento, manutenção e gerenciamento; Dificuldade em evitar que erros ocorridos nas máquinas ou na rede atrapalhem o sistema; Garantir uma segurança dos dados compartilhados entre as máquinas através do sistema. 17

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? (Anh?) DSM (Distributed Shared Memory) Abstração usada para o compartilhamento de dados entre computadores que não compartilham memória física (Colouris); 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. 18

DSM (Visão do Usuário) 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; 19

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. 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; 20

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; Comparação com outras tecnologias Dados são compartilhados diretamente por processos, não precisando ser passado como mensagem ou parâmetros; Requer o uso de mecanismos de controle de concorrência para garantir a consistência dos dados na área de memória compartilhada; 21

Implementação em Hardware Usada em arquitetura de multiprocessadores do tipo NUMA (Non-Uniform Memory Access); Grupos de processadores ligados por um barramento compartilham um banco de memória local; Processos acessam espaço de endereçamento que reúne memória local e remota; Implementação em Hardware 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. 22

Implementação em Software Middleware é responsável por efetuar a comunicação entre os nós para manter a memória compartilhada atualizada e consistente; Processos chamam o middleware para acessar dados compartilhados; Implementação em Software 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; 23

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 da invocação de métodos. Implementação centralizada As páginas de memória compartilhadas são mantidas em um servidor central, que executa as operações requisitadas pelos clientes. 24

Implementação por Migração As páginas de memória compartilhadas são migradas de um nó para outro; Nó de posse da página executa localmente as operações desejadas. Estratégias baseadas em Replicação Cada nó mantém uma cópia local dos dados; Mais eficientes que as estratégias centralizadas 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; 25

Estratégias baseadas em Replicação 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. Replicação Somente-Leitura Dados podem ser lidos concorrentemente; Alterações nos dados não coordenadas por um servidor, que atualiza/invalida as réplicas; 26

Replicação Leitura/Escrita Dados são lidos e alterados em paralelo; Sequenciador é responsável por atualizar/invalidar cópias desatualizadas 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. 27

Consistência A manutenção da consistência dos dados é crucial para o funcionamento da DSM; Consistência sequencial garante que todos os nós recebem as alterações na mesma ordem; Garantir consistência sequencial é 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. http://condor.cc.ku.edu/~grobe/docs/intro-mpi- C.shtml http://people.sc.fsu.edu/~jburkardt/c_src/mpi/mpi. html 28

REFERÊNCIA Tanenbaum A., Sistemas Operacionais Modernos; 29