sistemas distribuídos - aula 11 - sistemas operacionais distribuídos

44
SISTEMAS DISTRIBUÍDOS SUPORTE DO SISTEMA OPERACIONAL ARTHUR EMANUEL DE OLIVEIRA CAROSIA 1

Upload: arthur-emanuel

Post on 18-Dec-2014

376 views

Category:

Technology


1 download

DESCRIPTION

Sistemas Operacionais Distribuídos

TRANSCRIPT

Page 1: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

1

SISTEMAS DISTRIBUÍDOS

SUPORTE DO SISTEMA OPERACIONAL

ARTHUR EMANUEL DE OLIVEIRA CAROSIA

Page 2: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

2

ROTEIRO

Introdução

Camada do SO

Proteção

Processos e Threads

Custos de Invocação

Arquitetura de SO

Page 3: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

3

ROTEIRO

Introdução

Camada do SO

Proteção

Processos e Threads

Custos de Invocação

Arquitetura de SO

Page 4: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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.)

Page 5: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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

Page 6: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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.

Page 7: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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)

Page 8: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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.

Page 9: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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).

Page 10: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

10

SISTEMAS OPERACIONAIS

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

11

ROTEIRO

Introdução

Camada do SO

Proteção

Processos e Threads

Custos de Invocação

Arquitetura de SO

Page 12: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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.

Page 13: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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”

Page 14: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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.

Page 15: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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.

Page 16: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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.

Page 17: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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.

Page 18: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

18

S.O. DISTRIBUÍDOS.O. DE REDE

Page 19: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

19

CARACTERÍSTICAS DOS S.O.

Page 20: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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

Page 21: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

21

A CAMADA DO S.O.

Page 22: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

22

ROTEIRO

Introdução

Camada do SO

Proteção

Processos e Threads

Custos de Invocação

Arquitetura de SO

Page 23: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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

Page 24: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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

Page 25: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

25

ROTEIRO

Introdução

Camada do SO

Proteção

Processos e Threads

Custos de Invocação

Arquitetura de SO

Page 26: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

26

PROCESSOS E THREADSProcesso = 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

Page 27: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

27

PROCESSOS E THREADS

Page 28: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

28

ROTEIRO

Introdução

Camada do SO

Proteção

Processos e Threads

Custos de Invocação

Arquitetura de SO

Page 29: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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.

Page 30: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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

Page 31: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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

Page 32: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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

Page 33: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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

Page 34: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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)

Page 35: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

35

CUSTO DE INVOCAÇÃO

Page 36: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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

Page 37: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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)

Page 38: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

38

CUSTO DE INVOCAÇÃO

Page 39: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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

Page 40: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

40

ROTEIRO

Introdução

Camada do SO

Proteção

Processos e Threads

Custos de Invocação

Arquitetura de SO

Page 41: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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.

Page 42: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

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

Page 43: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

43

ARQUITETURAS DE S.O.

Núcleo Monolítico versus Micro-núcleo

Page 44: Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos

44

SISTEMAS DISTRIBUÍDOS

SUPORTE DO SISTEMA OPERACIONAL

ARTHUR EMANUEL DE OLIVEIRA CAROSIA