Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Sistema Distribuído Conjunto de máquinas (CPU + memória) interligadas em rede. Processador 1 Memória 1 Processador 2 Memória 2 Processador 3 Memória 3 Rede Sistema Distribuído Sistema operacional distribuído trata este conjunto como um único sistema computacional. Processador 1 Memória 1 rede Estação 1 Estação 2 Estação 3 Disco Disco Disco Processador 2 Memória 2 Processador 3 Memória 3 Aplicações Distribuídas Aplicaçõ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ásicos Paralelismo: vários processos executando simultaneamente em vários computadores compartilhando ou não memória Só é 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 2 Sistemas Paralelos Barramento Cache Processo A Cache Processo B Cache Processo C Sistema 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 1 Memória 1 Processador 2 Memória 2 Processador 3 Memó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 Problemas Diminuiçã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 Rede Conjunto de máquinas interligadas em rede. Sistema operacional inclui funções para comunicação remota Processador 1 Memória 1 rede Estação 1 Estação 2 Estação 3 Disco Disco Disco Processador 2 Memória 2 Processador 3 Memória 3 Executar processo X na estação 2 3 Sistemas Operacionais de Rede Login Remoto TELNET Transferência de Arquivos FTP SO de Rede X SO Distribuído Sistema Distribuído Conjunto de Computadores que age como uma única máquina (Sistema Coeso) Requisito Fundamental: Transparência Sistema em Rede Coleção de computadores independentes Concorrência Programa Concorrente: Concorrência = várias tarefas em progresso ao mesmo tempo programas 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 4 Conceitos Básicos Processador 1 Memória 1 Processador 2 Memória 2 Processador 3 Memória 3 Sistema Distribuído: Sistema Paralelo ou Memória Compartilhada: Processador 1 Processador 2 Processador 3 Memória Sistemas Distribuídos Finalidade Compartilhamento de Dados Compartilhamento de Recursos (Periféricos, CPU) Comunicação entre Pessoas Flexibilidade Sistemas Distribuídos Caracterí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ídos Problemas 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 5 Sistemas Distribuídos Requisitos 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.c arq1.c arq1.c oxum oxalá obaluaê logum-ede 6 Transparência de Migração Liberdade de Migração Sem mudança de nome Sem conhecimento do usuário arq1.c arq1.c arq1.c oxum oxalá obaluaê logum-ede arq1.c Transparência de Replicação Usuário não precisa saber da replicação arq1.c arq1.c arq1.c oxum oxalá obaluaê logum-ede 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 7 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 kernel Monolítico Inclui Arquivos, Diretórios e Gerenciamento de Processos Kernel Monolítico x Microkernel Vantagens do MicroKernel Interface modular para cada serviço simplicidade no adicionamento ou mudança de um serviço Flexibilidade Vantagem do Kernel Monolítico Desempenho 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 8 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 Funcional Determinadas 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 Processo Programa em execução Conceito central de Sistemas Operacionais Possui todas as informações necessárias para executar um programa: um programa executável seus dados seu contador de programa sua pilha de execução registradores etc. 9 Processo Em 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 A B C D Tempo Processos Processo Processos 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
Compartilhar