Você está na página 1de 35

Odecília Barreira

Tipos de Sistemas
Operacionais

Sistemas Sistemas Sistemas com


Monoprogramáveis Multiprogramáveis Múltiplos
/ Monotarefas / Multitarefas Processadores

Quanto ao No. de Qto ao Ger. das Fortemente Fracamente


usuários: Aplicações: Acoplados Acoplados

Monousuário Sist. Batch S. O. Redes

Multiusuário Tempo Sistemas


Compartilhado Distribuidos

Tempo Real
1) Conceitos Fundamentais de Sistemas Operacionais;
2) Evolução Histórica dos Sistemas Operacionais;
3) Classificação de Sistemas Operacionais;
4) Interrupções;
5) Conceitos de concorrência;
6) Estruturas dos Sistemas Operacionais.
 Sistemas operacionais podem ser vistos como um
conjunto de rotinas executadas de forma concorrente e
ordenada (Pinkert, 1990).
 A possibilidade de o processador executar instruções ao
mesmo tempo que outras operações, como por
exemplo, operações de E/S, permite que diversas
tarefas sejam executadas concorrentemente pelo
sistema.
 O conceito de concorrência é o princípio básico para o
projeto e a implementação de sistemas
multiprogramáveis.
Sistemas Monoprogramáveis Sistemas Multiprogramáveis
• Execução de um programa por vez, • Execução de Vários programas
processador dedicado exclusivamente a essa simultaneamente (concorrente);
tarefa; • Vários programas podem estar residentes em
• Desperdício na utilização do processador, memória, concorrendo pela utilização do
enquanto uma leitura em disco é realizada, o processador;
processador permanece ocioso; • Quando um programa solicita uma operação
• Subutilização da memória, ocasionando de E/S outros programas poderão utilizar o
espaços livres sem utilização. processador;
• Não existe concorrência;
 A utilização concorrente da UCP deve ser
implementada de maneira que, quando um programa
perde o uso do processador e depois retorna para
continuar o processamento, seu estado deve ser idêntico
ao do momento em que foi interrompido.
 O programa deverá continuar sua execução exatamente
na instrução seguinte aquela em que havia parado,
aparentando que nada aconteceu.
 Memória
◦ Um programa que não ocupe totalmente a memória ocasiona a
existência de áreas livres sem utilização.
◦ Nos sistemas multiprogramáveis, vários programas podem estar
residentes em memória, concorrendo pela utilização do processador.
◦ Dessa forma, quando um programa solicita uma operação de E/S
outros programas poderão utilizar o processador.
 Tempo de Processador menos ocioso;
 Memória utilizada de forma eficiente.
 Durante a execução de um programa, alguns eventos
inesperados podem ocorrer, interrompendo o seu fluxo
normal de execução e ocasionando um desvio forçado.

 Esses tipos de eventos são conhecidos por interrupção,


mecanismo básico e fundamental para o funcionamento
dos sistemas operacionais multiprogramáveis.
 Sempre que ocorre uma interrupção, o sistema
operacional é chamado para executar a rotina de
tratamento.
 Antes de realizar o desvio, o sistema operacional deve
salvar o estado do processo interrompido, para que este
possa continuar do ponto de onde parou quando voltar
a executar.
 Existem três tipos de interrupção:
◦ Interrupção de Hardware
◦ Exceção
◦ Interrupção de Software
 Ocorre por ocorrência de algum dispositivo de
hardware, como por exemplo os dispositivos de E/S ou
por temporizadores.

 Exemplos:
◦ Dispositivos: teclado, mouse, ou outro dispositivo de E/S,
informando a UCP que alguma operação de E/S terminou ou o
temporizador informa que o tempo (Time Slice) de um
processo terminou.
 A exceção ocorre em conseqüência de algum erro
durante a execução de uma instrução do próprio
programa.

 Exemplos:
◦ Tentativa de acesso ilegal à memória, estouro de pilha,
tentativa de execução de instrução privilegiada no modo do
usuário.
 É uma chamada de sistema (system call), realizada
sempre quando um utilitário ou aplicativo solicita
recursos de hardware ao sistema operacional.

 Exemplos:
◦ Solicitação de leitura ou gravação de arquivo, leitura do
teclado, impressão na tela, etc.
O registrador PC (Program Counter – contador
de programa) aponta para a próxima instrução a
executar;
 Kernel: Núcleo do sistema operacional responsável
pelas tarefas críticas do sistema;
 Aplicações são executadas em modo usuário, ou seja,
modo que não possui privilégios para operações que
coloquem o sistema em risco (ex. escrever no disco,
criar novas tarefas etc);
 Quando estas aplicações precisam executar tarefas
críticas, é necessário que haja uma mudança para modo
kernel;
 Esta mudança ocorre através de uma “system call” -
chamadas ao sistema (system call).
 System Call
◦ Mecanismo responsável pela mudança de modo usuário para
modo kernel.
◦ Ao invés de executar diretamente funções do kernel, a
aplicação executa uma função intermediária que verifica se
o acesso ao kernel é seguro e, só então, completa a operação.
 Mecanismo de proteção ao núcleo do sistema e de
acesso aos seus serviços.
 O usuário (ou aplicação), quando deseja solicitar algum
serviço do sistema, realiza uma chamada a uma de suas
rotinas (ou serviços) através da system calls (chamadas
ao sistema).
 Tipos de Instruções
◦ Privilegiadas → (System Call)
◦ Não-privilegiadas

 Modos de Acesso
◦ Usuário
◦ Kernel ou supervisor
 Os sistemas operacionais são classificados em relação
às atribuições do kernel e a relação entre seus módulos
em:
◦ Monolíticos;
◦ Camadas
◦ Microkernel.
 S.O. roda em Modo kernel, supervisor ou núcleo,
protegendo o hardware da ação direta do usuário.

 Os demais programas rodam em modo usuário e fazem


chamadas ao kernel para terem acesso aos dispositivos.
 A arquitetura monolítica pode ser comparada com uma
aplicação formada por vários módulos que são
compilados separadamente e depois linkados, formando
um grande e único programa executável onde os
módulos podem interagir livremente.

 Adotada no projeto do MS-DOS e nos primeiros


sistemas Unix.
Baseado em Sistema Monolítico
 Na arquitetura de camadas, o
sistema é dividido em níveis
sobrepostos.
 Cada camadas oferece um conjunto
de funções que podem ser utilizadas
pela camadas superiores.
 Neste tipo de implementação, as
camadas mais internas são mais
privilegiada que as mais externas.
 Atualmente os S.O. comerciais
utilizam o modelo de duas camadas:
usuário e kernel.
 Ex: Versões Unix e Windows.
 Uma tendência dos sistemas operacionais é tornar o
núcleo menor e mais simples possível;

 Para implementar esta idéia o sistema é dividido em


processos, onde cada um é responsável por oferecer um
conjunto específico de funções, como gerência de
arquivos, gerência de processos, gerência de memória e
escalonamento;
 Sempre que uma aplicação deseja algum serviço, é
realizada uma solicitação ao processo responsável;

 A aplicação que solicita um serviço é chamada de


cliente e o processo que responde a solicitação é
chamado de servidor.
 A arquitetura de micro-núcleo permite isolar as funções
do sistema operacional por diversos processos
servidores pequenos e dedicados a serviços específicos,
tornando o núcleo menor, mais fácil de depurar e
conseqüentemente aumentando sua confiabilidade.

 Desvantagens:
◦ Implementação difícil;
◦ Problema de desempenho, devido a quantidade de mudanças
do modo de acesso entre clientes e servidores.
◦ Algumas funções como E/S exigem acesso direto ao hardware.
Fortemente inspirada no princípio de
micronúcleo
 Apesar das boas propriedades
de modularidade, flexibilidade e
robustez proporcionadas pelos
micronúcleos, sua adoção não
teve o sucesso esperado devido
ao baixo desempenho. Uma
solução encontrada para esse
problema consiste em trazer de
volta ao núcleo os componentes
mais críticos, para obter melhor
desempenho. Essa abordagem
intermediária entre o núcleo
monolítico e micronúcleo é
denominada núcleo híbrido.

Você também pode gostar