Estruturas dos Sistemas
Operacionais
Sistemas Operacionais
Prof. Mauro Duarte
29/04/14
Sistemas Monolíticos:
● Não existe nenhuma organização dentro do núcleo do
sistema operacional:
Um sistema operacional
monolítico caracteriza-se por
não possuir nenhuma estrutura
interna no seu núcleo. O núcleo
do sistema é composto por um
conjunto de procedimentos,
compilados em um único
arquivo, que podem chamar uns
aos outros. Alguns
procedimentos implementam
chamadas ao sistema
operacional, e outros são
procedimentos utilitários, usados
para executar tarefas comuns a
estas chamadas.
29/04/14
Sistemas Monolíticos:
● O projeto do sistema não é estruturado:
– O sistema é um conjunto de procedimentos compilados
num único arquivo objeto.
– Os procedimentos possuem uma interface bem definida.
– Os procedimentos podem chamar uns aos outros.
– Os procedimentos dependem da implementação dos
outros para funcionar.
29/04/14
Sistemas Monolíticos:
● O modelo de chamadas ao sistema permite
uma estruturação:
– Um processo que usa os procedimentos de serviço.
– Um conjunto de procedimentos de serviço que
implementam a chamada de sistema.
– Um conjunto de procedimentos de utilitários usados pelos
procedimentos de serviço.
29/04/14
Sistemas Monolíticos:
● O núcleo o Linux é um exemplo de
sistema monolítico:
– O acesso ao hardware é feito a partir dos
controladores de dispositivos.
– É dividido em cinco subsistemas.
29/04/14
O núcleo do Linux é monolítico e
possui 5 subsistemas principais:
Escalonador;
Comunicação entre
processos;
Gerente de memória;
Sistema de arquivo virtual;
Interface de rede.
29/04/14
Sistema em Camadas:
● O sistema operacional é estruturado
com uma hierarquia em camadas, onde
cada camada implementa uma parte
do sistema.
29/04/14
Sistema em Camadas(2):
● O primeiro Sistema Operacional a adotar tal
modelagem foi oTHE, desenvolvido por
Edsger Dijkstra e seus alunos, a fim de que
funcionasse em um computador holandês,
denominado de Electrologica X8.
29/04/14
Sistema em Camadas:
● OTHE possui a seguinte estrutura de seis camadas:
– Camada 0: Alocação do processador e responsável pela
multiprogramação;
– Camada 1: Gerenciamento (alocação) de memória para os
processos;
– Camada 2: Comunicação entre operador-processo
(Interpretador de Comandos e o Sistema Operacional) e
comunicação entre processos;
– Camada 3: Gerenciamento de Entrada/Saída;
– Camada 4: Programas de Usuário;
– Camada 5: Operador de Sistema;
29/04/14
Sistema em Camadas:
Na estruturação do sistema
como uma hierarquia em
camadas, o núcleo do
sistema operacional é
dividido em camadas, sendo
que cada uma delas trata
do gerenciamento de
alguma parte do hardware,
fornecendo para as
camadas superiores uma
visão abstrata da parte do
hardware gerenciada por
esta camada.
29/04/14
Sistema em Camadas:
● A hierarquia em camadas fornece uma
estruturação para o núcleo do sistema
operacional, mas um nível não é
obrigado a usar os serviços de um nível
inferior.
29/04/14
Sistema em Anéis:
● O modelo em camadas inspirou o Sistema
MULTICS, onde ao invés de camadas, o sistema
foi estruturado em uma série de Anéis
Concêntricos, onde o mais interno tinha maior
privilégio que o mais externo.
29/04/14
Sistema em Anéis:
● Semelhante ao Sistema Monolítico, quando um
Anel Externo necessitava de um procedimento
contido em um Anel Interno, era necessário
executar uma Chamada de Sistema, também
conhecida comoTRAP. No caso do MULTICS, tal
modelagem não era somente um auxílio, mas
estava realmente presente no sistema e inclusive
era protegido por hardware.
29/04/14
Sistema em Anéis:
● A estrutura baseada em anéis tem as
seguintes vantagens sobre a estrutura em
camadas:
– Cada anel possui uma prioridade de acesso.
– A prioridade do anel depende da posição do anel na
hierarquia.
– A proteção do acesso é assegurada pelo hardware.
29/04/14
Exemplos:
● THE (camadas)
● MULTICS (anéis)
● MS-DOS (camadas)
● UNIX (anéis)
● Linux (monolítico)
29/04/14
Modelo cliente-servidor:
● Baseado no conceito de cliente e
servidor.
● O núcleo do sistema, chamado de
micronúcleo ou microkernel,
essencialmente trata da troca de
mensagens entre clientes e servidores.
29/04/14
Modelo cliente-servidor(2):
29/04/14
Modelo cliente-servidor:
● O microkernel trata somente da troca de
mensagens entre os processos rodando no
modo usuário, e do acesso aos dispositivos
físicos, mas não do seu gerenciamento.
● As outras partes do sistema são processos que
executam em modo usuário.
29/04/14
Modelo cliente-servidor:
● Código do núcleo reduzido, coloca-se
quase todas as partes do sistema em
modo usuário.
29/04/14
Modelo cliente-servidor:
● Existem processos servidores, rodando no modo
usuário, executando quase todos os serviços do
sistema.
● O processo cliente que deseja um serviço do
sistema envia uma mensagem ao processo
servidor que executa o serviço.
● Ao receber a mensagem de um cliente, o
processo servidor executa o serviço, e depois
envia uma resposta ao cliente.
29/04/14
Modelo cliente-servidor:
● Vantagens do modelo:
– O sistema é dividido em partes menores que são
mais fáceis de manter e gerenciar;
– Como os servidores executam em modo usuário,
um erro de programação não compromete o
sistema;
– Facilita a implementação de sistemas
distribuídos, pois os servidores não precisam
estar na mesma máquina.
29/04/14
Modelo cliente-servidor:
29/04/14
Modelo cliente-servidor:
● OWindows NT é um exemplo de sistema operacional
baseado no modelo cliente-servidor.
● Assim como o Mac OS X.
O sistema Mac OS X, que executa nos
computadores da linha Machintosh, é
baseado no sistema NeXTStep, que usa o
microkernel Mach para gerencial o
hardware do computador. Existe um único
servidor rodando no sistema, que é uma
versão do sistema BSD (baseado no
UNIX). O BSD acessa o hardware através
do Mach, e não diretamente através de
driver de dispositivos. Os programas ou
usam as chamadas BSD, ou as chamadas
ao Mach.
29/04/14
Modelo cliente-servidor:
● O sistema operacional MINIX, a partir da
versão 2.0, também é um sistema baseado no
modelo cliente-servidor.
29/04/14
Para estudar mais:
págs 37-43

Sistemas Operacionais - 03 - Tipos e Estrutura dos SO

  • 1.
    Estruturas dos Sistemas Operacionais SistemasOperacionais Prof. Mauro Duarte
  • 2.
    29/04/14 Sistemas Monolíticos: ● Nãoexiste nenhuma organização dentro do núcleo do sistema operacional: Um sistema operacional monolítico caracteriza-se por não possuir nenhuma estrutura interna no seu núcleo. O núcleo do sistema é composto por um conjunto de procedimentos, compilados em um único arquivo, que podem chamar uns aos outros. Alguns procedimentos implementam chamadas ao sistema operacional, e outros são procedimentos utilitários, usados para executar tarefas comuns a estas chamadas.
  • 3.
    29/04/14 Sistemas Monolíticos: ● Oprojeto do sistema não é estruturado: – O sistema é um conjunto de procedimentos compilados num único arquivo objeto. – Os procedimentos possuem uma interface bem definida. – Os procedimentos podem chamar uns aos outros. – Os procedimentos dependem da implementação dos outros para funcionar.
  • 4.
    29/04/14 Sistemas Monolíticos: ● Omodelo de chamadas ao sistema permite uma estruturação: – Um processo que usa os procedimentos de serviço. – Um conjunto de procedimentos de serviço que implementam a chamada de sistema. – Um conjunto de procedimentos de utilitários usados pelos procedimentos de serviço.
  • 5.
    29/04/14 Sistemas Monolíticos: ● Onúcleo o Linux é um exemplo de sistema monolítico: – O acesso ao hardware é feito a partir dos controladores de dispositivos. – É dividido em cinco subsistemas.
  • 6.
    29/04/14 O núcleo doLinux é monolítico e possui 5 subsistemas principais: Escalonador; Comunicação entre processos; Gerente de memória; Sistema de arquivo virtual; Interface de rede.
  • 7.
    29/04/14 Sistema em Camadas: ●O sistema operacional é estruturado com uma hierarquia em camadas, onde cada camada implementa uma parte do sistema.
  • 8.
    29/04/14 Sistema em Camadas(2): ●O primeiro Sistema Operacional a adotar tal modelagem foi oTHE, desenvolvido por Edsger Dijkstra e seus alunos, a fim de que funcionasse em um computador holandês, denominado de Electrologica X8.
  • 9.
    29/04/14 Sistema em Camadas: ●OTHE possui a seguinte estrutura de seis camadas: – Camada 0: Alocação do processador e responsável pela multiprogramação; – Camada 1: Gerenciamento (alocação) de memória para os processos; – Camada 2: Comunicação entre operador-processo (Interpretador de Comandos e o Sistema Operacional) e comunicação entre processos; – Camada 3: Gerenciamento de Entrada/Saída; – Camada 4: Programas de Usuário; – Camada 5: Operador de Sistema;
  • 10.
    29/04/14 Sistema em Camadas: Naestruturação do sistema como uma hierarquia em camadas, o núcleo do sistema operacional é dividido em camadas, sendo que cada uma delas trata do gerenciamento de alguma parte do hardware, fornecendo para as camadas superiores uma visão abstrata da parte do hardware gerenciada por esta camada.
  • 11.
    29/04/14 Sistema em Camadas: ●A hierarquia em camadas fornece uma estruturação para o núcleo do sistema operacional, mas um nível não é obrigado a usar os serviços de um nível inferior.
  • 12.
    29/04/14 Sistema em Anéis: ●O modelo em camadas inspirou o Sistema MULTICS, onde ao invés de camadas, o sistema foi estruturado em uma série de Anéis Concêntricos, onde o mais interno tinha maior privilégio que o mais externo.
  • 13.
    29/04/14 Sistema em Anéis: ●Semelhante ao Sistema Monolítico, quando um Anel Externo necessitava de um procedimento contido em um Anel Interno, era necessário executar uma Chamada de Sistema, também conhecida comoTRAP. No caso do MULTICS, tal modelagem não era somente um auxílio, mas estava realmente presente no sistema e inclusive era protegido por hardware.
  • 14.
    29/04/14 Sistema em Anéis: ●A estrutura baseada em anéis tem as seguintes vantagens sobre a estrutura em camadas: – Cada anel possui uma prioridade de acesso. – A prioridade do anel depende da posição do anel na hierarquia. – A proteção do acesso é assegurada pelo hardware.
  • 15.
    29/04/14 Exemplos: ● THE (camadas) ●MULTICS (anéis) ● MS-DOS (camadas) ● UNIX (anéis) ● Linux (monolítico)
  • 16.
    29/04/14 Modelo cliente-servidor: ● Baseadono conceito de cliente e servidor. ● O núcleo do sistema, chamado de micronúcleo ou microkernel, essencialmente trata da troca de mensagens entre clientes e servidores.
  • 17.
  • 18.
    29/04/14 Modelo cliente-servidor: ● Omicrokernel trata somente da troca de mensagens entre os processos rodando no modo usuário, e do acesso aos dispositivos físicos, mas não do seu gerenciamento. ● As outras partes do sistema são processos que executam em modo usuário.
  • 19.
    29/04/14 Modelo cliente-servidor: ● Códigodo núcleo reduzido, coloca-se quase todas as partes do sistema em modo usuário.
  • 20.
    29/04/14 Modelo cliente-servidor: ● Existemprocessos servidores, rodando no modo usuário, executando quase todos os serviços do sistema. ● O processo cliente que deseja um serviço do sistema envia uma mensagem ao processo servidor que executa o serviço. ● Ao receber a mensagem de um cliente, o processo servidor executa o serviço, e depois envia uma resposta ao cliente.
  • 21.
    29/04/14 Modelo cliente-servidor: ● Vantagensdo modelo: – O sistema é dividido em partes menores que são mais fáceis de manter e gerenciar; – Como os servidores executam em modo usuário, um erro de programação não compromete o sistema; – Facilita a implementação de sistemas distribuídos, pois os servidores não precisam estar na mesma máquina.
  • 22.
  • 23.
    29/04/14 Modelo cliente-servidor: ● OWindowsNT é um exemplo de sistema operacional baseado no modelo cliente-servidor. ● Assim como o Mac OS X. O sistema Mac OS X, que executa nos computadores da linha Machintosh, é baseado no sistema NeXTStep, que usa o microkernel Mach para gerencial o hardware do computador. Existe um único servidor rodando no sistema, que é uma versão do sistema BSD (baseado no UNIX). O BSD acessa o hardware através do Mach, e não diretamente através de driver de dispositivos. Os programas ou usam as chamadas BSD, ou as chamadas ao Mach.
  • 24.
    29/04/14 Modelo cliente-servidor: ● Osistema operacional MINIX, a partir da versão 2.0, também é um sistema baseado no modelo cliente-servidor.
  • 25.