Sistemas Distribuídos

Documentos relacionados
Sistema de Software Distribuído

Características de Sistemas Distribuídos

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

Características de Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos

Conceitos de Sistemas Distribuídos

Sistemas Distribuídos

Computação Distribuída

Introdução aos Sistemas Distribuídos

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

Sistemas Distribuídos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

SISTEMAS DISTRIBUÍDOS

Desenvolvimento de Aplicações Distribuídas

Sistemas Distribuidos. Prof. Walter Gima

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

Arquitetura de sistemas distribuídos

Sistemas distribuídos. Prof. Emiliano Monteiro

Caracterização de Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos. Edy Hayashida

Quando Distribuir é bom

1- Confiabilidade ( 2 ) Proteção contra perdas e estragos. 2- Integridade ( 3 ) Proteção contra interferência de cortes de funcionamento

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

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

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

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

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

SISTEMAS OPERACIONAIS

SISTEMAS DISTRIBUÍDOS

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

INTRODUÇÃO AOS SISTEMAS DISTRIBUÍDOS. Prof. Cesar Augusto Tacla

Programação Concorrente

SIST706 Sistemas Distribuídos

Introdução a Sistemas Distribuídos

Gerência de Dispositivos. Adão de Melo Neto

Sistemas Distribuídos

Curso: Redes de Computadores

SISTEMAS DISTRIBUÍDOS

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

Sistemas Distribuídos

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

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

Técnicas Avançadas de Programação

Sistema de arquivos Distribuidos

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

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA

Processos ca 3 pítulo

Sistemas Distribuídos

SO: SISTEMAS OPERACIONAIS Curso: Sistemas de Informação

STD29006 Sistemas Distribuídos

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

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Protocolo Request-Reply

Programação Paralela e Distribuída

Sistemas Operacionais (SO)

Fundamentos de Sistemas Operacionais

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Processamento Paralelo

Introdução a SD e suas Metas

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

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

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS EVOLUÇÃO DA COMPUTAÇÃO

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

Sistemas Distribuídos

Sistemas Operacionais & Sistemas de Programação II

Estrutura do Sistema Operacional

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MULTI PLAYER. Marcelo Henrique dos Santos

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

Introdução à Programação Aula 01. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Sistemas Operacionais Distribuídos

Estruturas de Sistemas Operacionais

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

Transcrição:

Sistemas Distribuídos

Motivação Aplicações Motivam Possibilita Engenharia

Motivação! Aplicações cada vez mais complexas! Qual a técnica mais comum para redução de complexidade? " Modularização Dividir para conquistar!!!

Motivação! Modularização aumenta a legibilidade de um programa! Mas, um único programa com vários módulos (sistema monolítico) continua complexo para a plataforma de suporte, principalmente porque exige muitos recursos (de processamento, memória...) Aplicação Sistema Operacional Hardware Plataforma

Sistemas Centralizados Motivação Computadores com grande capacidade de processamento (mainframes) " Grande porte físico limitações para acomodação " Grande consumo de energia sala especial, refrigeração " SO único dependência do fabricante Terminais sem capacidade de processamento ( burros )...passado

Sistemas em Rede Motivação A realidade dos últimos tempos...! Computadores diversos, todos com capacidade de processamento " Portes diversos " SOs diversos " Redes diversas (Ethernet, ATM, com fio, sem fio...) " Internet

Distribuição de sistemas Motivação Dividindo para conquistar!!! Programa modularizado A B C distribuir D Execução sequencial ou concorrente (threads)

Distribuição de sistemas Motivação Dividindo para conquistar!!! Programa modularizado A A A A A A B B C C B C B C B C C B Distribuindo... C B B D D D D D D D Execução sequencial ou concorrente (threads) D D D D

Distribuição de sistemas Motivação Dividindo para conquistar!!! Programa distribuído! Componentes interligados A! Processamento (execução) B distribuído ou paralelo C D

Sistema Distribuído! O que é?! Conceitos! Desafios

O que é um Sistema Distribuído?! Coleção de computadores independentes que aparecem para os usuários do sistema como um único computador. (Tanenbaum & van Steen)! Um Sistema distribuído é uma coleção de elementos de processamento interconectados, tanto logicamente como fisicamente, para execução cooperativa de programas de aplicação com o controle geral dos recursos centralizado. (M. Eckhouse)! Um sistema em que componentes de hardware e software localizados em computadores em rede se comunicam e coordenam suas ações por passagem de mensagens. (Coulouris et al)! Vários componentes! Conectados via uma rede! Compartilhando recursos

Aplicabilidade! Sistemas de software de (grande) porte! Um sistema de sw de grande porte precisa de " Grande capacidade de # Processamento # Memória # Armazenamento " Um sistema centralizado precisa de # Máquina de grande porte (ex. mainframe) alto custo de # aquisição, # manutenção e # expansão

Sistemas de Grande Porte (cont) " Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados em # Diversas máquinas de porte menor interligadas em rede menor custo de # Aquisição, # Manutenção e # Expansão

Conceitos! Os diversos componentes de software de um sistema distribuído, tendo a independência / autonomia de serem processados em máquinas diversas, são chamados de Processos! Um dos módulos do sistema operacional, o escalonador, gerencia a fila de processos que usarão o processador como um Recurso " Outros exemplos de recursos: # Hw: memória, discos, impressoras # Sw: arquivos, bancos de dados, compiladores

Conceitos (cont)! Threads: considerados processos leves " Permitem que atividades concorrentes internas a um processo possam ser intercaladas pelo escalonador, podendo aumentar a eficiência do sistema! Plataforma = hardware + sistema operacional " As soluções atuais de suporte visam tornar os sistemas distribuídos independentes de plataformas

Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000 Conceitos (cont) Applications, services camada de software que esconde heterogeneidade e fornece um modelo de programação Middleware Operating system Platform Computer and network hardware

Desafios! Heterogeneidade " Software # SO # Linguagens de programação " Hardware " Rede! Abertura! Segurança! Escalabilidade! Tratamento de falhas! Concorrência! Transparência

Sistemas Heterogêneos Máquina A P 1 P 2 P 3 Camadas Aplicação Máquina B P 4 P 5 P 6 Windows CISC/PC Ethernet Eth SO Switch HW RedeATM Unix RISC/WS ATM! Obs.: SOs são otimizados para determinadas arquiteturas de hardware " Ex. 1: Windows, Linux para CISC/PCs " Ex. 2: Unix para RISC/WS (Workstations) Mas podem ser rodados/emulados em plataformas diversas; ex.: SAMBA emula Windows em RISC/WS

Sistemas Heterogêneos (cont) Considerando apenas a camada SO: Máquina A Máquina B P 1 P 2 P 3 P 4 P 5 P 6 Windows SO Unix Hardware CISC/PC Ethernet Eth RedeATM RISC/WS Hardware ATM! Como rodar P 4 no Windows se ele foi construído (desenvolvido e compilado) para Unix? " Simplesmente recompilar? E se o programa usou construções específicas (system calls) do Unix? Pode ser necessário reprogramar para recompilar no Windows...

Sistemas Heterogêneos (cont)! Para evitar reprogramação...! Usar camada intermediária padronizada que Middleware! isole (torne independentes) os programas de aplicação dos diversos SOs de um sistema distribuído heterogêneo Transparência de heterogeneidade

Conceito/Desafio! Transparência " Esconde do usuário e do programador de aplicação a separação de componentes em um SD " O sistema é percebido como um todo, em vez de uma coleção de componentes independentes

Outros Tipos de Transparência! Localização: esconde onde o recurso está localizado! Acesso: operações idênticas para acesso local e remoto! Migração: esconde que um recurso pode se mover para outra localização! Relocação: esconde que um recurso pode ser movido para outra localização enquanto está em uso! Concorrência: compartilhamento de recursos sem interferência entre processos concorrentes! Falha: esconde a falha e recuperação de um recurso! Replicação: esconde de usuários ou programadores de aplicação a existência de réplicas de recursos

Desafio: Abertura! Grau com o qual novos serviços compartilhados podem ser adicionados e usados! Requer publicação de interfaces para acesso a recursos compartilhados! Requer mecanismo de comunicação uniforme! Conformidade de cada componente com o padrão publicado deve ser testada e verificada

Desafio: Segurança! Segurança tem três componentes: " Confidencialidade (proteção contra abertura para indivíduos não autorizados) " Integridade (proteção contra corrupção) " Disponibilidade (proteção contra interferência nos meios para acessar recursos)! Dois difíceis desafios de segurança: " Ataques de Denial of Service (DOS) " Segurança de código móvel: pode acessar recursos locais?

Desafio: Escalabilidade! Permanecer efetivo mesmo quando há um aumento significativo no número de recursos e usuários: " Controlar o custo dos recursos " Controlar a perda de desempenho " Prevenir que os recursos de software acabem (ex., endereços IP) " Evitar gargalos de desempenho

Desafio: Tratamento de Falhas! Falha parcial " Detecção (crash de máquina ou atraso de rede?) " Mascaramento (retransmissão, replicação) " Cliente desiste após número pré-determinado de tentativas, timeout etc " Recuperação (checkpoint e rollback recovery) " Redundância

Desafio: Concorrência! É um problema quando dois ou mais usuários acessam o mesmo recurso ao mesmo tempo " Threads " Mecanismos de exclusão mútua (ex. semáforos)

Sistemas Distribuídos! Por que ter?! Para que?! Como funcionam?

Por que?! Aproveitar recursos de software e hardware distribuídos

Para que?! Escalabilidade: atendimento à demanda! Desempenho: múltiplos processadores Exemplos ARPAnet: Hardware, software e pessoas distribuídos Serviço Web moderno:! Segurança! Disponibilidade: replicação; tolerância a falha Tanenbaum and van Steen. Distributed Systems: Principles and Paradigms Prentice Hall 2002

Como funcionam?! Suporte de comunicação " Redes velozes e confiáveis Infra de comunicação! Suporte de software " Sistemas operacionais de rede " Sistemas operacionais distribuídos " Middleware Infra de software

Desenvolvimento de Tecnologia O papel dos Sistemas Distribuídos hoje Antes... Motivam Aplicações Engenharia Possibilita Hoje... Motivam Aplicações Middleware Serviços Rede Possibilitam