Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

857 visualizações

Publicada em

Sistemas Operacionais Distribuídos

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
857
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
41
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

  1. 1. SISTEMAS DISTRIBUÍDOS SUPORTE DO SISTEMA OPERACIONAL ARTHUR EMANUEL DE OLIVEIRA CAROSIA 1
  2. 2. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 2
  3. 3. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 3
  4. 4. CONTEXTUALIZAÇÃO Classificação de Sistemas Distribuídos Arquiteturas de Sistemas Distribuídos Camada de Middleware • Modelo Send/ Receive • RMI e RPC • Comunicação Indireta Camada do Sistema Operacional (S.O.) 4
  5. 5. SISTEMA OPERACIONAL “Um sistema operacional é um programa que age como intermediário entre o usuário do computador e o hardware. O propósito de um sistema operacional é prover um ambiente no qual um usuário possa executar programas de forma conveniente e eficiente.” SILBERSCHATZ et al. Operating Systems Concept 5
  6. 6. SISTEMA OPERACIONAL O S.O. provê meios para o uso apropriado dos recursos de hardware, software e dados durante a operação do sistema computacional. 6
  7. 7. SERVIÇOS OFERECIDOS PELO S.O. Os S.O.s, em geral, fornecem algumas classes comuns de serviços: • Execução de programas: • carregar um programa na memória e executá-lo • Operações de E/S; • envolver um arquivo ou um dispositivo de E/S • Manipulação de sistemas de arquivos • ler e escrever em arquivos • Criar e remover arquivos • Comunicação • permitir que um processo troque informações com outro(s) processo(s) 7
  8. 8. SERVIÇOS OFERECIDOS PELO S.O. • Detecção de Erros • Alocação de Recursos • necessário quando há múltiplos usuários ou múltiplos processos • Registro de usuários • manutenção do controle de quais usuários usam quanto e quais recursos computacionais • Proteção • garantia de que todos os acessos aos recursos do sistema sejam controlados pelo S.O. 8
  9. 9. SISTEMAS OPERACIONAIS As funções providas pelo S.O são então estruturadas em duas categorias: • Serviços do sistema: funções de alto nível tal como são vistas pelas aplicações (visão para o usuário de uma máquina estendida); • Kernel (núcleo): funções essenciais que são dependentes da arquitetura sob a qual o S.O vai executar (visão do administrador do sistema de um gerenciador de recursos). 9
  10. 10. SISTEMAS OPERACIONAIS 10
  11. 11. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 11
  12. 12. CAMADA DO S.O. • Sistema Distribuído = Compartilhamento de Recursos. • Recursos distribuídos em múltiplos nós físicos. • Aplicativos utilizam middleware para viabilizar a interação entre recursos. • Middleware se relaciona com o sistema operacional para realizar as tarefas que os serviços e aplicativos requisitam. 12
  13. 13. PAPEL DO S.O. Prover abstrações dos recursos da camada física • Processadores • Memória • Rede • Armazenamento (hard-disk, etc) Exemplos • Arquivos versus blocos de disco • Soquetes versus acesso direto à rede • S.O. gerencia recursos físicos através de interfaces denominadas “chamadas de sistema” 13
  14. 14. S.O. CENTRALIZADO Nessa classe de sistemas operacionais, a comunicação e compartilhamento de recursos é feita via memória compartilhada ou interrupções. Como características principais destaca-se: • Sistema altamente acoplado, com todos os recursos compartilhados internamente; • Comunicação entre processos via memória compartilhada. 14
  15. 15. S.O. DE REDE UNIX, Windows, Mac OS, Linux… são sistemas operacionais de rede • Possuem acesso a recursos remotos • Clientes podem executar processos em outros nós • Cada nó tem controle sobre sua área de memória e processador • Cada nó possui uma imagem própria do sistema • Usuários normalmente estão a par da localização dos seus arquivos e movem eles através de transferências explícitas; • Sistema possui pouco ou nenhum recurso de tolerância a falhas. 15
  16. 16. S.O. DISTRIBUÍDO A implementação de um sistema verdadeiramente distribuído tem como objetivo a obtenção de um conjunto de máquinas ligadas em rede que funcionem como um uniprocessador virtual. Características • Única imagem para todos os nós • Um SO controla todos os nós, seu processamento e memória. • O uso de múltiplos processadores deve ser invisível para o usuário. • O usuário vê o sistema como um uniprocessador virtual, não como uma coleção de máquinas distintas conectadas. 16
  17. 17. S.O. DISTRIBUÍDO O SO Distribuído deve: • Controlar a alocação de recursos da rede para permitir seu uso no modo mais eficiente. • Prover ao usuário com um computador virtual conveniente que serve como um ambiente de programação de alto nível. • Esconder a distribuição dos recursos. • Prover mecanismos para proteção dos recursos do sistema contra acesso por usuários não autorizados. • Prover comunicação segura. 17
  18. 18. S.O. DISTRIBUÍDO S.O. DE REDE 18
  19. 19. CARACTERÍSTICAS DOS S.O. 19
  20. 20. A CAMADA DO S.O. Middleware pode ser executado sobre vários hardwares e sistemas operacionais diferentes O par SO-Hardware = Plataforma Responsabilidades do núcleo do SO e dos processos • Encapsulamento • Proteção • Processamento concorrente • Comunicação • Escalonamento 20
  21. 21. A CAMADA DO S.O. 21
  22. 22. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 22
  23. 23. RESPONSABILIDADE DO NÚCLEO Proteção • Recursos da máquina exigem proteção contra acesso ilegítimo • Ameaças • Código malicioso • Código bem intencionado, porém mal feito • Exemplo • Acesso indevido a arquivos, solução: criptografia 23
  24. 24. RESPONSABILIDADE DO NÚCLEO Proteção • Código executado com privilégio total sobre os recursos lógicos e de máquina • Controla processador, memória, registradores, etc. de forma que nenhum acesso ocorra de forma diferente do “aceitável” • Modo supervisor versus modo usuário 24
  25. 25. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 25
  26. 26. PROCESSOS E THREADS Processo = ambiente de execução com uma ou mais threads Processo • Espaço de endereçamento • Comunicação e sincronização entre threads (semáforos, etc) • Recursos de alto nível: janelas, arquivos, etc Ambiente de execução é um domínio de proteção criado pelo sistema operacional para compartilhamento de recursos entre várias threads Ambiente de execução (ou processo) fornece proteção contra threads que estão fora dele 26
  27. 27. PROCESSOS E THREADS 27
  28. 28. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 28
  29. 29. RESPONSABILIDADES DO NÚCLEO Comunicação e Invocação • Invocação • Realizar chamada de sistema • Enviar uma mensagem a um objeto • Chamar procedimento ou método • Chamar procedimento ou método remoto • Invocação Remota • executar uma operação sobre um recurso em um espaçamento de memória diferente de quem executa o pedido. 29
  30. 30. RESPONSABILIDADES DO NÚCLEO Comunicação e Invocação • Cada invocação implica em execução fora do escopo do procedimento • Problemas • Quais primitivas de comunicação são fornecidas pelo SO • Quais protocolos são suportados pelo SO e qual sua abertura 30
  31. 31. COMUNICAÇÃO E INVOCAÇÃO Primitivas de Comunicação • Sistema Amoeba (S.O. distribuído) • Fornece diretivas como doOperation, getRequest, sendReply diretamente como parte do núcleo do SO • UNIX e família Windows • fornecem maior parte do middleware executando em modo usuário e não como parte do núcleo. • Chamadas são realizadas via soquete através de TCP e UDP 31
  32. 32. COMUNICAÇÃO E INVOCAÇÃO Primitivas de Comunicação • Vantagens de diretivas no núcleo • rapidez • eficiência • menos operações • Desvantagens de diretivas no núcleo • muito complexo para implementar • inviabiliza portabilidade do middleware 32
  33. 33. COMUNICAÇÃO E INVOCAÇÃO Protocolos e abertura • SO deve fornecer protocolos padrão para interligação de recursos através de implementações de middleware em diferentes plataformas • Exigido compatibilidade com padrão TCP e UDP • Protocolos são organizados como pilhas de camadas • Muitos SO’s permitem que se adicione novos protocolos dinamicamente 33
  34. 34. CUSTO DE INVOCAÇÃO Desempenho • Fator crítico em projetos de SD • Maior abstração • mais chamadas remotas e trocas de mensagens • Tempo de invocação não tem diminuído na proporção do aumento da largura e disponibilidade de rede • Custo de invocação • Passagem de parâmetros • Retorno de valores • Sincronismo (send/receive bloqueantes) 34
  35. 35. CUSTO DE INVOCAÇÃO 35
  36. 36. CUSTO DE INVOCAÇÃO Invocação via Rede • RPC/RMI nula – chamada/invocação sem parâmetros de entrada e sem retorno • Cenário • Dois processos, dois computadores de 500 MHz, rede de 100 Megabits/s • RPC/RMI – dura na ordem de décimos de milisegundos • Uma chamada convencional demora uma fração de microsegundo • Grande parte do atraso • Ações do núcleo do sistema operacional • Execução do código no objeto remoto 36
  37. 37. CUSTO DE INVOCAÇÃO Invocação via Rede • Custos de invocação de RPC/RMI nula mede a latência • Custos aumentam com o tamanho e a quantidade dos argumentos e resultados • Cenário de exemplo • RPC que solicita dados a um servidor • Um argumento de entrada (numérico) • Dois argumentos de saída (numérico / array de bytes) 37
  38. 38. CUSTO DE INVOCAÇÃO 38
  39. 39. CUSTO DE INVOCAÇÃO Invocação via Rede • Responsáveis pelo atraso em uma RMI (além da transmissão) • Empacotamento • Cópia de dados • Entre usuário e núcleo do SO • Entre cada camada do protocolo (RPC/TCP/IP/Ethernet) • Entre a rede e os buffers do SO no destino • Inicialização de pacotes • Escalonamento de Threads • Espera por confirmações 39
  40. 40. ROTEIRO Introdução Camada do SO Proteção Processos e Threads Custos de Invocação Arquitetura de SO 40
  41. 41. ARQUITETURAS DE S.O. Kernel Monolítico Os Sistemas Operacionais que possuem Kernels Monolíticos têm tudo construído neles desde o início. Isso significa que eles são totalmente auto-suficientes, mas também maiores e um pouco mais lentos. • Executam cada serviço básico do sistema espaço do kernel: • Gerenciamento de memória. • Manipulação de interrupções e comunicação I/O. • Sistemas de arquivos. • Inconvenientes: • Tamanho do kernel. • Falta de extensibilidade. • Manutenibilidade ruim. 41
  42. 42. ARQUITETURAS DE S.O. Microkernel Microkernels adicionam ganchos para manipulação de módulos externos. Como resultado, eles são bastante compactos por si só e são bastante rápidos em funções embutidas. • Reduzem o kernel a comunicações de processos básicos e controle de I/O, e deixam os outros serviços de sistemas situados no user-space em forma de processos. • Garantem maior flexibilidade. • Inconvenientes: • Módulos infectados,Trojan modules, apresentam um grande risco de segurança 42
  43. 43. ARQUITETURAS DE S.O. Núcleo Monolítico versus Micro-núcleo 43
  44. 44. SISTEMAS DISTRIBUÍDOS SUPORTE DO SISTEMA OPERACIONAL ARTHUR EMANUEL DE OLIVEIRA CAROSIA 44

×