Sistemas Distribuídos



Documentos relacionados
Profs. Deja e Andrei

Sistemas Operacionais

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes.

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR

Comparação SDs X Scs

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

SISTEMAS DISTRIBUÍDOS

Sistemas Operacionais

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

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

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

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

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

Classificação de SO (Sistemas Operacionais) Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva

Sistemas Distribuídos (DCC/UFRJ)

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Everson Scherrer Borges João Paulo de Brito Gonçalves

Máquinas Multiníveis

Introdução às arquiteturas paralelas e taxonomia de Flynn

Sistemas Distribuídos. Introdução

Introdução aos Sistemas Distribuídos

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Sistemas Operacionais

Sistemas Distribuídos

Nível do Sistema Operacional

Introdução ao Modelos de Duas Camadas Cliente Servidor

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais

REDES DE COMPUTADORES

Sistemas Distribuídos

1.2 Tipos de Sistemas Operacionais

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

Sistemas Operacionais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

Redes de Computadores e suas classificações. Maurício Severich

EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

Sistemas Operacionais

Infra-Estrutura de Software. Introdução. (cont.)

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

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

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Sistemas Operacionais Introdução. Professora: Michelle Nery

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

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

UFRJ IM - DCC. Sistemas Operacionais I

1

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

Sistemas Operacionais Gerência de Dispositivos

Características Carlos Ferraz

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

REDES DE COMPUTADORES HISTÓRICO E CONCEITOS

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

Processos e Threads (partes I e II)

Visão Geral de Sistemas Operacionais

Sistemas Distribuídos

Evolução na Comunicação de

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

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

Senado Federal Questões 2012

Sistemas Distribuídos

SISTEMAS DISTRIBUIDOS

Sistemas Distribuídos Aula 1 Introdução

OBJETIVOS DA APRESENTAÇÃO

Introdução aos Sistemas Operacionais

Considerações no Projeto de Sistemas Cliente/Servidor

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Meio Físico. Mensagem. Protocolo. Emissor e Receptor. Data Terminal Equipment Data Communications Equipment

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 02 - Estrutura dos Sistemas Operacionais. Cursos de Computação

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

4 Estrutura do Sistema Operacional Kernel

Tecnologia e Infraestrutura. Conceitos de Redes

Sistemas Operacionais

Modelos de Arquiteturas. Prof. Andrêza Leite

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

Introdução à Ciência da Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Arquitetura dos Sistemas de Informação Distribuídos

Sistemas Cliente-Servidor

Classificação Quanto. Sistemas de Lotes (2) Sistemas de Lotes (3)

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta

Capítulo 8 Arquitetura de Computadores Paralelos

Sistemas Operacionais Processos e Threads

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Transcrição:

Sistemas Distribuídos Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto

Bibliografia Andrew S. Tanembaum, Sistemas Distribuídos, Princípios e Paradigmas 2a edição, 2008 Andrew S. Tanenbaum, Distributed Operating Systems. Prentice-Hall, 1995 Andrew S. Tanenbaum, Distributed Systems: Principles and Paradigms. Prentice Hall, 2002 George Coulouris, Jean Dollimore, Tim Kindberg, Distributed Systems - Concepts and Design, 3rd Ed., Addison Wesley, September 2001 1

Critério de Avaliação A definir 2

Plano de Ensino: Conteúdo Previsto Comunicação entre Processos Evolução, Conceito e Caracterização dos Sistemas Distribuídos; Modelo Cliente Servidor; Comunicação por passagem de mensagem Sockets; RPC - Remote Procedure Call; Java RMI - Remote Method Invocation; Sincronização em SD Transações Distribuídas Sistemas de Arquivos Distribuídos / Case Comunicação de Grupos / P2P WebServices Tecnologia GRID, Cluster e Cloud; 3

Introdução Comunicação entre Processos

Introdução Sistema Operacional Gerenciador de Recursos Máquina Abstrata/Estendida/Virtual Multitarefa Capacidade de executar ao mesmo tempo vários processos Alternância entre processos troca de contexto Escalonamento Dispatching Execução 5

Introdução 6

Comunicação entre Processos Vários processos precisam trocar informações Memória/Arquivos Áreas de memória específicas Sistema Operacional (buffers, pipes, área de transferência) Determinadas ém código Primitivas de sistema Operacional para Determinar áreas comuns Exemplos em Código C (Windows) 7

Comunicação entre Processos int main(int argc, char *argv[]) { int op, *valor; void *sharedmemoryloc; HANDLE sharedvar; sharedvar = CreateFileMapping(INVALID_HANDLE_VALUE, // use paging file NULL, // no security attributes PAGE_READWRITE, // read/write access 0, // size: high 32-bits sizeof(int), // size: low 32-bits "variavel"); sharedmemoryloc = MapViewOfFile(sharedVar,FILE_MAP_WRITE,0,0,0); valor = (int*)sharedmemoryloc; do{ scanf("%d",&op); if (op == 1) { printf("digite um valor\n"); scanf("%d",valor); } else if (op == 2) { printf("o valor atualizado vale: %d\n",*valor); } } while (op!= 3); UnmapViewOfFile(sharedMemoryLoc); CloseHandle(sharedVar); return 0; } 8

Comunicação entre Processos Linux / Windows Pipe bash$ comando1 comando2 Redireciona a saída do comando1 para a entrada do comando2 stdout e stdin stdout saída padrão (geralmente vídeo) stdin entrada padrão (geralmente teclado) arquivos específicos do sistema operacional Área de memória do próprio Sistema Operacional para transferência de dados I/O entre processos 9

Comunicação entre Processos Spooling Área de impressão de documentos Implementação: FILA de arquivos Todos os processos enviam documentos para o controlador do spool que os organiza para, então, imprimi-los Área de Transferência do Windows Buffer para armazenamento de objetos (texto, gráficos, tabelas) Imprescindível para as operações CTRL+C e CTRL+V Implementações semelhantes em outros Sistemas Operacionais (Linux, Solaris) 10

Pipes Remotos Linux maq1$ comando1 rsh maquina2 comando2 bash comando1 rsh bash maquina1 comando2 maquina2 11

Problemas da Comunicação Suponha a seguinte situação Dois processos necessitam gravar dados em uma mesma área de memória (atualizar um arquivo ou variável, por exemplo) Se ambos acessarem simultaneamente essa memória?? Inconsistência Valor final da variável / Conteúdo do arquivo?? Condição de Corrida Seção Crítica 12

Necessidade Sincronização Mecanismo que garanta que apenas um único processo irá acessar um determinado recurso por vez Enquanto um processo utilizar o recurso, os demais esperam Exemplo: Cruzamento Processos: automóveis Recuros: ruas Recurso compartilhado: trecho de cruzamento das ruas 13

Soluções Semáforos Mecanismos do SO que garantem acesso exclusivo (Exclusão mútua) a um recurso Para utilizar o recurso, o processo deve solicitar ao semáforo Caso o semáforo esteja liberado, ele é travado para que o processo use o recurso e os demais esperem Caso o semáforo esteja travado, o processo deve ficar em modo de espera, até que ocorra um evento de liberação do semáforo 14

Exemplo Programa A Programa B shared semaphore s while(1) { lock(s); seção crítica(); unlock(s); seção não crítica(); } shared semaphore s while(1) { lock(s); seção crítica(); unlock(s); seção não crítica(); } 15

Conceitos Gerais Evolução, Conceito e Caracterização dos Sistemas Distribuídos

Introdução: Sistemas Distribuídos Sistemas Distribuídos, há mais de uma década, deixaram de ser apenas uma promessa; Vários exemplos bem-sucedidos de implementações Meio acadêmico Comércio Indústria Residências; Novos desafios: Diversidade dos ambientes computacionais envolvidos; Necessidade de troca de mensagens através da rede; Compreensão do que vem a ser uma aplicação distribuída. Ferramentas de apoio à construção dessas aplicações 17

Sistemas Distribuídos: Evolução De 1945 a 1985 Computadores de grande porte e alto custo Trabalhavam de modo independente não havia confiabilidade na comunicação De 1985 em diante Microcomputadores com maior poder computacional CPU 8, 16, 32 e 64 bits HyperThreading e MultiCore (devido à limitação de 3.4 GHz na freqüência) Nota: Lançado esta semana processador de 80 core (1.01 TFlops) Pentium M 1.4GHz 149 MFlops Redes de alta velocidade Local Area Network LAN Wide Area Network WAN 18

Investimentos de Empresas Hardware Intel AMD Sun SGI Software IBM Microsoft Iniciativas de Software Livre (RedHat) Oracle 19

Sistemas Distribuídos: Conceito Definição de Tanenbaum aperfeiçoada por Mullender: Um sistema distribuído é aquele que se apresenta aos seus usuários como um sistema centralizado, mas que, na verdade, funciona em diversas CPUs independentes; Além disso, um sistema distribuído não deve ter pontos críticos de falha, ou seja, se um componente do mesmo quebrar, isto não deve fazer com que o sistema como um todo falhe; Essa característica de estabilidade é uma de suas principais vantagens em relação a um sistema centralizado. 20

Sistemas Distribuídos: Conceito Definição de Coulouris enfatiza: Devem estar conectados através de uma rede Não precisam estar localizados em uma única sala, ou mesmo próximos entre si Não há limite para a área abrangida por um sistema desse tipo; Computadores devem estar equipados com software de sistemas distribuídos Usuários vêem o sistema como uma entidade única, integrada Embora esteja funcionando em computadores diferentes, situados em locais diversos. 21

Sistemas Distribuídos: Definições Definição em 2 aspectos Hardware: Máquinas independentes e autônomas Software: O sistema apresenta-se ao usuário como uma única máquina 22

Esquema print and other servers email server Desktop computers Web server Local area network email server File server print other servers the rest of the Internet router/firewall 23

Sistemas Distribuídos: Características Comunicação por Trocas de Mensagens: Utilização de meios de comunicação introduz características diferentes no modelo de comunicação; A comunicação fica sujeita a um conjunto de fatores que podem afetar sua confiabilidade perdas/interferências; Protocolos Garantir confiabilidade e ordem das mensagens Interligação de várias redes Atraso Falha na Transmissão Tempo máximo de espera por uma mensagem 24

Sistemas Distribuídos: Características Modelo de Falhas: Maior probabilidade de falhas maior quantidade de equipamentos Falhas individuais não podem afetar o sistema como um todo Algoritmos de detecção e recuperação de falhas Replicações, Redundâncias Fatores que levam a falhas Elementos de interligação Interferências, cabeamento mal estruturado, intempéries naturais Falta de alimentação elétrica nos equipamentos Nodos (Nós) do sistema Falhas de software (erro de programação) Falhas físicas (crash em equipamento) 25

Sistemas Distribuídos: Características Sincronismo: Sistema centralizado Sistema de sincronismo concentrado em um único núcleo com regras Sistema Distribuído Informação está necessariamente dividida por diversas máquinas e discos; Problemas com cada Nodo do sistema Não compartilham relógio global não possuem mesmos horários Disputa por recursos algoritmos mais complexos e que podem ser afetados pela comunicação entre os processadores 26

Sistemas Distribuídos: Características Segurança: Vulnerabilidade de Redes Observação das Mensagens sniffing Ataques DoS, DDoS, Buffer Overflow Validação da identidade dos usuários Usuário válido Credenciais para utilizar recursos Interligação de serviços públicos e privados Internet Políticas de segurança diversas (níveis de acesso) Sistemas Heterogêneos 27

Sistemas Distribuídos: Características Heterogeneidade: Sistema amplo Variedade de Arquiteturas CISC, RISC, Vetoriais 32, 64 bits Intel, Mac, Sparc, Mainframes, etc Variedade de Sistemas Operacionais Linux, Windows, MacOS, Solaris, AIX, HP-UX, BSD Representação interna de valores. O primeiro octeto é o de peso mais significativo (big endian); O primeiro octeto é o de peso menos significativo (little endian). 28

Sistemas Distribuídos: Características Desempenho: Desempenho de um SD deve ser compatível com um Sistema Centralizado Divisão do processamento entre os diversos nós Custo da comunicação Com SD é possível atingir desempenhos jamais imagináveis com Sistemas Centralizados 29

Sistemas Distribuídos: Características Custo: Pode-se obter um SD com a mesma quantidade de processadores de um SC com um custo muito menor Utilização de múltiplos processadores de baixo custo interligados em rede Capacidade de se obter um desempenho muito maior com o mesmo investimento do que em um Sistema Centralizado 30

Sistemas Distribuídos: Características Distribuição Geográfica: Componentes fisicamente distantes uns dos outros Aplicações Inerentemente Distribuídas Venda de passagens aéreas Sistema integrado de gestão empresarial Internet... 31

Sistemas Distribuídos: Características Compartilhamento de Recursos: Periféricos de alto custo Impressoras laser coloridas, discos RAID com interface SCSI Dados em um ambiente centralizado Bases de dados de transações financeiras Problema Controle de acesso e concorrência Mecanismos mais complexos 32

Sistemas Distribuídos: Características Capacidade de Expansão (Scalability): Sistema Centralizado Limite físico para o número máximo de processadores Limite para discos, memória Sistema Distribuído Necessidade de mais desempenho acoplar mais máquinas Em função da demanda, aumenta-se o número de nós do sistema Problema interligação congestionamento 33

Sistemas Distribuídos: Características Disponibilidade: Tempo em que o sistema é utilizável Desejável = 100% Máquinas independentes podem continuar mantendo o sistema em operação no caso de falhas em outras máquinas Sistema deve ser projetado para tal Exemplos Sistema bancário Web Servers Garantia de Disponibilidade Redundância (software, hardware) Algoritmos de recuperação 34

Sistemas Distribuídos: Características Concorrência: Mais complexo do que em um Sistema Centralizado Mecanismos de controle de concorrência devem ser revistos (semáforos, mutexes) Maior número de máquinas maior concorrência Rede influencia o acesso aos recursos 35

Sistemas Distribuídos: Características Transparência Localização: o usuário não precisa saber onde estão os recursos Replicação: não é necessário saber quantas cópias do recurso existem Migração: recursos podem mudar de lugar sem a alteração de nomes Concorrência: recursos podem ser disputados sem conhecimento do usuário Paralelismo: várias atividades podem ocorrer simultaneamente sem o conhecimento dos usuário 36

Vantagens Compartilhamento de dados: base de dados comum; Compartilhamento de dispositivos: acesso compartilhado a periféricos; Comunicação: torna-se mais simples e mais rápida a comunicação entre pessoas. Além disso, é possível: transferência de arquivos entre nós, login remoto, etc; Flexibilidade: dividir a carga de trabalho entre os nós da rede; Confiabilidade: se um nó falha os demais poderão continuar operando; Velocidade de computação: maior poder computacional obtido através de concorrência. Há a possibilidade de distribuir uma computação particionada a vários nós para executarem concorrentemente; Performance a baixo custo: preço baixo dos PCs; Escalabilidade: aumentar o número de nós 37

Desvantagens (Desafios) Software Falta de experiência Mudança de Paradigma Conhecimento sobre a distribuição Quanto deve ser feito pelo sistema e quanto pelo usuário? Rede Perda de mensagens Sobrecarga na comunicação Dimensionamento da rede Segurança Autenticação, credenciais, bloqueios 38

Conceitos de Hardware Taxonomia de Flynn (SD) Single Data (MD) Multiple Data (SI) Single Instruction SISD Máquinas de Von Newmann convencionais SIMD Máquinas Vetoriais (CM-2, MasPar) (MI) Multiple Instruction MISD Sem representante (até o momento) MIMD Multiprocessadores e Multicomputadores (ncube, Intel Paragon, Cray T3D) 39

SISD Computadores com um único processador 40

SIMD Máquinas vetoriais e matriciais que executam a mesma instrução em paralelo sobre vários conjuntos de dados 41

MISD Modelo Conceitual Não existem implementações como produtos Pesquisas desenvolvidas (Flynn) 42

MIMD Memória Compartilhada: máquinas SMP Memória Distribuída: clusters 43

Conceitos de Software Acoplamento Grau de dependência entre os diversos componentes do sistema Também define como o usuário vê o sistema Fortemente Acoplados Os diversos processadores cooperam na execução de uma tarefa (processamento paralelo) Fracamente Acoplados Máquinas independentes, com sua própria memória, HD, processador que se comunicam quando necessário 44

Sistema Operacional de Rede Software Fracamente Acoplado Hardware Fracamente Acoplado Rede de Estações de Trabalho conectadas por uma LAN Cada estação de trabalho pode ter ou não disco rígido Cada estação de trabalho tem o seu próprio sistema operacional Todos os comandos são normalmente executados localmente Eventualmente é possível fazer uma conexão remota com outra estação de trabalho Forma mais conveniente de comunicação e compartilhamento de informação: Sistema de Arquivo Global Compartilhado (NFS) Implementado em uma ou mais máquinas chamadas Servidores de Arquivos Servidores de Arquivos aceitam requisições de programa de usuários (chamados clientes) 45

Sistema TimeSharing Multiprocessadores Software Fortemente Acoplado Hardware Fortemente Acoplado Máquinas voltadas para propósitos específicos, como bases de dados dedicadas e processamento de imagens; Todo o projeto pode ser centralizado => visão de um único processador. Existência de uma única fila de espera (processos que não estão bloqueados e prontos para execução); Memória compartilhada por todos os processadores; Único sistema de arquivos; 46

Sistema Distribuído Software Fortemente Acoplado Hardware Fracamente Acoplado Cada usuário tem a mesma imagem do sistema. Impressão de um único processador Virtual Um mecanismo de comunicação interprocesso único e global - qualquer processo pode se comunicar com qualquer outro; Gerenciamento de processos precisa ser o mesmo no sistema todo (criação, destruição, começo, interrupção de processos); Único conjunto de chamadas de sistema; Sistema de arquivo também precisa ter as mesmas caracteristicas; Cópias identicas do kernel executam em todas as CPUs do sistema (escalonamento, swapping, paginação, etc). 47

Diferenças SO de Rede Sistema Distribuído Sistema Timesharing Multiprocessadores Parece um único processador virtual? Não Sim Sim Tem o mesmo SO? Não Sim Sim Número de cópias do SO N N 1 Como é sua comunicação? Arquivos Compartilhados Mensagens Memória Compartilhada Protocolos Requeridos? Sim Sim Não Uma única fila de execução? Não Não Sim Arquivos tem a mesma semântica? Usualmente não Sim (para ter uma imagem única do sistema) Sim 48

Aspectos de Projeto Transparência Esconder o fato do usuário estar tratando com um sistema Distribuído Ex.: Make no Unix compilações em paralelo Transparência para programadores (nível mais baixo) Interface das chamadas do sistema oculta a existência de múltiplos processadores 49

Aspectos de Projeto Flexibilidade Kernel Monolítico Concentra todas as funcionalidades, embora não sejam totalmente utilizadas MicroKernel Kernel com funcionalidades mínimas, para que máquinas com propósitos específicos tenham serviços configuradas 50

Aspectos de Projeto Confiabilidade Teoria: se uma máquina falha, outra pode realizar seu trabalho Prática: cooperação de alguns servidores específicos Confiabilidade: probabilidade do sistema estar operando normalmente em um intervalo de tempo 51

Aspectos de Projeto Disponibilidade Fração do tempo em que o sistema é usável Pode ser aumentada por meio de redundância Partes de software ou hardware podem ser replicadas Maior número de réplicas maior probabilidade de inconsistências Segurança: integridade das informações Tolerância a Falhas: capacidade do sistema se recuperar e esconder a falha do usuário 52

Aspectos de Projeto Desempenho Não pode ser pior do que um sistema Centralizado Medidas Tempo de resposta Throughput número de jobs por intervalo de tempo Quantidade de recursos consumidos na rede Resultados de Benchmarks Comunicação Paralelismo de Granularidade Fina Pouca computação Muita interação Paralelismo de Granularidade Grossa Muita computação Pouca interação 53

Aspectos de Projeto CGM Coarse-Grained Multiprocessor Ideal é sempre manter o processador ocupado e a rede pouco utilizada Dificuldade Encontrar o equilíbrio entre comunicação e processamento Dificuldade em encontrar aplicações que façam uso desta abordagem 54

Aspectos de Projeto Escalabilidade Com 10 processadores Sistema OK Desempenho proporcional à quantidade de máquinas Com 50 processadores Sistema Ok Desempenho começa a ficar comprometido Com 100 processadores Sistema falha Desafio: Conciliar desempenho com escalabilidade 55