39
Sistemas Distribuídos Thaís Vasconcelos Batista UFRN – DIMAp http://www.dimap.ufrn.br/~thais [email protected]

Apresentação do PowerPoint - dimap.ufrn.brthais/SD2003/aula1.pdf · Kernel Monolítico Micro Kernel Usuário kernel Monolítico Inclui Arquivos, Diretórios e Gerenciamento de Processos

Embed Size (px)

Citation preview

Sistemas Distribuídos

Thaís Vasconcelos BatistaUFRN – DIMAp

http://www.dimap.ufrn.br/[email protected]

Programa do CursoINTRODUÇÃO

Conceitos Básicos Sistemas em Rede X Sistemas DistribuídosNecessidade de Sistemas DistribuídosAspectos de Projeto de Sistemas Distribuídos

MODELOS DE ORGANIZAÇÃO DE SISTEMAS DISTRIBUÍDOS

Cliente-ServidorParesFiltros

Programa do Curso (cont.)SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS

Necessidade de SincronizaçãoSemáforosMonitoresProblema Clássico de SincronizaçãoDeadlock e Starvation

========= 1a. Prova ==========

COMUNICAÇÃO ENTRE PROCESSOSTipos de ComunicaçãoSocketChamada Remota de Procedimento (RPC)

Programa do Curso (cont.)THREADS

Threads x ProcessosNecessidade de ThreadsProgramação com Threads

MIDDLEWAREConceitosCORBA

ESTUDO DE CASO

Bibliografia Andrew Tanembaum – Distributed Operating System. Prentice-Hall, 1995.George Couloris et al. – Distributed Systems: Concepts and Design. Addison-Wesley, 1994.Douglas Commer – Internetworking with TCP/IP –Vol. I, II e III. Prentice-Hall, 1998.W. Richard Stevens – Unix Network Programming. Prentice-Hall, 1990.Jon Siegel – CORBA Fundamentals and Programming. John Wiley & Sons, 1996.

Sistema Distribuído

Conjunto de máquinas (CPU + memória) interligadas em rede.

Processador 1Memória 1

Processador 2Memória 2

Processador 3Memória 3

Rede

Sistema DistribuídoSistema operacional distribuído trata este conjunto como um único sistema computacional.

Processador 1Memória 1

rede

Estação 1 Estação 2 Estação 3

Disco Disco Disco

Processador 2Memória 2

Processador 3Memória 3

Aplicações DistribuídasAplicações que “se espalham” por várias máquinas.

aplicações concorrentes onde cada processo que compõe a aplicação pode ser executado em uma máquina arbitrária

Em sistemas distribuídos: qualquer aplicação pode ser executada de forma distribuída.Em sistemas operacionais convencionais: aplicação deve ser programada de forma explicitamente distribuída.

Conceitos BásicosParalelismo:

vários processos executando simultaneamente em vários computadores compartilhando ou não memóriaSó é possível em Sistemas multiprocessadores.

Pseudo-Paralelismo (Paralelismo Abstrato):vários processos compartilhando um mesmo processador ou outros recursos de um computador.Ilusão de que vários programas estão rodando ao mesmo tempo

Sistemas Paralelos

Barramento

Cache

Processo A

Cache

Processo B

Cache

Processo CSistema Operacional

Fila Execução: D, E

A (executando)B (executando)C (executando)

Disco

D (pronto)E (pronto)

Memória

Sistema Distribuído X Sistema Paralelo

Processador 1Memória 1

Processador 2Memória 2

Processador 3Memória 3

Red

Sistema Distribuído:

Sistema Paralelo ou Memória Compartilhada:

Processador 1 Processador 2 Processador 3

Memória

Sistema todo age como um sistema clássico de processador único

Paralelização de ProblemasDiminuição do tempo necessário para obter o resultado de uma computação;Um programa paralelo poderia igualmente ser executado em um sistema distribuído ou em uma máquina paralela;Execução em sistema distribuído permite que o recurso de processamento tenha várias funções;Viabilidade depende da quantidade de comunicação necessária.

Sistemas Operacionais de RedeConjunto de máquinas interligadas em rede.

Sistema operacional inclui funções para comunicação remota

Processador 1Memória 1

Disco Disco Disco

Processador 2Memória 2

Processador 3Memória 3

Executar processo X na estação 2

Estação 3Estação 1 Estação 2

rede

Sistemas Operacionais de Rede

Login RemotoTELNET

Transferência de ArquivosFTP

SO de Rede X SO DistribuídoSistema Distribuído

Conjunto de Computadores que age como uma única máquina (Sistema Coeso)Requisito Fundamental: Transparência

Sistema em RedeColeção de computadores independentes

ConcorrênciaPrograma Concorrente:

Concorrência = várias tarefas em progresso ao mesmo tempoprogramas executados em paralelismo ou pseudo-paralelismo

Tipicamente, em pseudo-paralelismo o processo não tem controle sobre o instante em que perderá o controle da CPU

Exemplos de Concorrência

Sistema Operacional

gerenciamento de arquivos

gerenciamento de memória

suporte a comunicação

aplicação: acesso a base de dados

administrador consultando log

programa batch atualizando dados

usuário interativo consultando base

Conceitos Básicos

Processador 1Memória 1

Processador 2Memória 2

Processador 3Memória 3

Sistema Distribuído:

Sistema Paralelo ou Memória Compartilhada:

Processador 1 Processador 2 Processador 3

Memória

Sistemas DistribuídosFinalidade

Compartilhamento de Dados

Compartilhamento de Recursos (Periféricos, CPU)

Comunicação entre Pessoas

Flexibilidade

Sistemas DistribuídosCaracterísticas

Mecanismo de Comunicação entre Processos

Kernels idênticos em cada máquina do Sistema

Mesmo Gerenciamento de Processos em todas as máquinas

Mesmo Sistema de Arquivos

Sistemas DistribuídosProblemas

Pouco Software

Dependência da Rede

Saturação e Falhas na rede afetam o sistema

Segurança

O fácil acesso aos dados também se aplica aos dados secretos

Sistemas DistribuídosRequisitos de Software

Transparência

Flexibilidade

Confiabilidade

Desempenho

Escalabilidade

Transparência

A Nível de Usuário

A Nível do Programador

Transparência

Localização

Migração

Replicação

Concorrência

Paralelismo

Transparência de Localização

Usuário não precisa saber onde se encontra o recurso

Nome do Recurso não incorpora a sua localização

arq1.carq1.c arq1.c

oxum oxalá obaluaê logum-ede

Transparência de Migração

Liberdade de MigraçãoSem mudança de nomeSem conhecimento do usuário

arq1.carq1.c arq1.c

oxum oxalá obaluaê logum-ede

Transparência de Replicação

Usuário não precisa saber da replicação

arq1.c

oxalá

arq1.c

obaluaê

arq1.c

oxum logum-ede

arq1.c

Transparência de Concorrência

Sistema se encarrega da Exclusão Mútua ao recurso compartilhado

Transparência de Paralelismo

Sistema Operacional + Compilador efetivem o paralelismo

Flexibilidade

Usuário

Microkernel

Servidor de Processos

Microkernel

Servidor de Diretório

Microkernel

Servidor de Arquivos

Microkernel

Rede

Kernel Monolítico

Micro Kernel

Usuário

kernelMonolítico

Inclui Arquivos,Diretórios e Gerenciamento de Processos

Kernel Monolítico x Microkernel

Vantagens do MicroKernelInterface modular para cada serviçosimplicidade no adicionamento ou mudança de um serviço Flexibilidade

Vantagem do Kernel MonolíticoDesempenho

Confiabilidade

Disponibilidade

Segurança

Tolerância a Falhas

Classes de Aplicações Distribuídas

Aplicações Inerentemente Distribuídas

Aumento de Desempenho

Aplicações Tolerantes a Falha

Aplicações usando especialização funcional

Aplicações de Natureza Distribuída

sistemas para comunicação: correio eletrônico, teleconferência, www, etc;programas para manutenção da própria rede: algoritmos de roteamento, gerenciamento da rede, etc;sistemas operacionais distribuídos;ambientes de trabalho em grupo: desenvolvimento de software e de documentos;jogos...

Distribuição FuncionalDeterminadas máquinas podem ter configurações de hardware ou software mais apropriadas para execução de dadas tarefas:

sistemas de arquivos

processamento numérico

capacidade de memória

Requisitos para Suporte a Programação Distribuída

controle do uso de múltiplos processadores

cooperação entre os processadores (comunicação e sincronização)

potencial para detectar e recuperar uma falha parcial do Sistema

ProcessoPrograma em execuçãoConceito central de Sistemas OperacionaisPossui todas as informações necessárias para executar um programa:

um programa executávelseus dados seu contador de programasua pilha de execuçãoregistradoresetc.

ProcessoEm um Sistema de Tempo Comparilhado (Timesharing) periodimente o SO pára de executar um processo e começa a executar outro processo (realiza preempção)Todas as informações sobre cada processo são armazenadas na Tabela de Processos

ABCD

Tempo

Processos

ProcessoProcessos Daemon: (UNIX)

é um processo que executa em “background” esperando que algum evento ocorra para que ele possa realizar alguma tarefa Exemplo:

Daemon de Impressão