O documento discute o papel dos sistemas operacionais em sistemas distribuídos, abordando como o SO fornece abstrações dos recursos físicos, como processamento, memória e rede. Também descreve os tipos de SO, incluindo centralizado, de rede e distribuído, e como cada um lida com comunicação e compartilhamento de recursos.
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. 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. 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. 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. 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. 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
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. 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. 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. 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. 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. 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
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
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. 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
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
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. 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. 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. 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. 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. 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
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. 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
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
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. 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