O documento descreve a evolução e classificação dos sistemas operacionais, incluindo: 1) as gerações dos sistemas desde painéis de programação até sistemas distribuídos; 2) os tipos de sistemas como monotarefa, multitarefa, tempo real e distribuídos; 3) as características dos sistemas com múltiplas CPUs.
2. 2
Evolução dos sistemas operacionais
• 1ª geração: painéis de programação.
• 2ª geração: processamento batch.
• 3ª geração: multiprogramação.
• 4ª geração:
– Computador pessoal;
– Sistemas de rede;
– Sistemas distribuídos.
3. Classificação dos Sistemas Operacionais
3
Tipos de SO
Sistemas
Monotarefa
Sistemas
Multitarefa
Sistemas c/
Múltiplas
CPUs
Sistemas
Batch
Sistemas de
Tempo
Compartilhado
Sistemas de
Tempo Real
Fortemente
Acoplados
Simétricos Assimétri-cos
Fracamente
Acoplados
SO de
Redes
SO
Distribuído
4. 4
Sistemas Monotarefa (Monoprogramáveis)
• Processador, memória e periféricos
exclusivamente dedicados a execução de um
único programa;
• Cada aplicação deveria
aguardar sua vez;
• Despreocupação com o
compartilhamento;
• Recursos comumente
subutilizados.
5. 5
Sistemas Multitarefa (Multiprogramáveis )
• Recursos computacionais compartilhados
entre diversos usuários
e tarefas;
• Preenchimento das
interrupções ocasionadas
nas operações de E/S;
• Preocupação com o
gerenciamento do acesso
concorrente.
6. 6
Sistemas Multitarefa (Multiprogramáveis )
• Tipos de SOs multiprogramáveis ou
multitarefa:
– Batch: processamento em lote dos jobs;
– Timesharing: compartilhamento em função do
tempo;
– Real-time: compartilhamento em função da
prioridade.
7. 7
Sistemas Multitarefa (Multiprogramáveis )
• Batch – processamento em lote dos jobs:
– Todos os programas a executar eram colocados em uma fila,
com seus dados e demais informações para a execução;
– O processador recebia os programas e os processava sem
interagir com os usuários, o que permitia um alto grau de
utilização do sistema;
– Atualmente, este conceito se aplica a sistemas que processam
tarefas sem interação direta com os usuários, como os sistemas
de processamento de transações em bancos de dados;
– Além disso, o termo “em lote” também é usado para designar
um conjunto de comandos que deve ser executado em
sequência, sem interferência do usuário.
– Exemplos desses sistemas incluem o OS/360 e VMS, entre
outros.
8. 8
Sistemas Multitarefa (Multiprogramáveis )
• Timesharing – compartilhamento do
processador em função do tempo:
– Cada atividade que detém o processador recebe
um limite de tempo de processamento,
denominado quantum.
9. 9
Sistemas Multitarefa (Multiprogramáveis )
• Real-time – compartilhamento do processador em
função da prioridade:
– Ao contrário da concepção usual, um sistema
operacional de tempo real não precisa ser
necessariamente ultra-rápido;
– sua característica essencial é ter um comportamento
temporal previsível (ou seja, seu tempo de resposta deve
ser conhecido no melhor e pior caso de operação);
– A estrutura interna de um sistema operacional de tempo
real deve ser construída de forma a minimizar esperas e
latências imprevisíveis, como tempos de acesso a disco e
sincronizações excessivas.
10. 10
Sistemas Multitarefa (Multiprogramáveis )
• Real-time – compartilhamento do processador em
função da prioridade:
– Soft real-time system: a perda de prazos implica na
degradação do serviço prestado.
• Um exemplo seria o suporte à gravação de CDs ou à
reprodução de músicas.
11. 11
Sistemas Multitarefa (Multiprogramáveis )
• Real-time – compartilhamento do processador em
função da prioridade:
– Hard real-time system: a perda de prazos pelo sistema
pode perturbar o objeto controlado, com graves
consequências humanas, econômicas ou ambientais.
• Como exemplos, temos o controle de funcionamento de
uma turbina de avião a jato, ou o sistema de resfriamento
de uma usina nuclear.
12. 12
Sistemas Multitarefa (Multiprogramáveis )
• Real-time – compartilhamento do processador em
função da prioridade:
– Exemplos de sistemas de tempo real incluem o QNX,
RT-Linux e VxWorks.
13. 13
Sistemas com Múltiplas CPUs
• Possui duas ou mais CPUs interligadas e
trabalhando em conjunto;
• Programas executados ao mesmo tempo ou
subdivididos em partes;
• Escalabilidade, disponibilidade e
balanceamento de carga.
14. 14
Sistemas com Múltiplas CPUs
• Fortemente acoplados:
– Simétricos;
– Assimétricos.
• Fracamente acoplados:
– SOs de redes;
– SOs distribuídos.
15. 15
Sistemas com Múltiplas CPUs
• Sistemas com múltiplas CPUs fortemente
acoplados:
– Memória principal compartilhada;
– Dispositivos de E/S controlados por apenas um
SO;
– Conhecidos como multiprocessadores.
16. Sistemas com Múltiplas CPUs
• Sistemas com múltiplas CPUs fortemente
acoplados:
– Sistemas simétricos:
• Tempo uniforme de acesso à memória principal, pelos
diversos processadores.
16
CPU CPU
MEMÓRIA
PRINCIPAL
DISP. E/S DISP. E/S
16
17. Sistemas com Múltiplas CPUs
• Sistemas com múltiplas CPUs fortemente acoplados:
17
– Sistemas assimétricos:
• Diversos conjuntos, reunindo processadores e memória principal,
sendo que cada conjunto é conectado aos outros através de uma
rede de interconexão;
• O tempo de acesso à memória pelos processadores varia em
função da sua localização física.
17
MEMÓRIA
PRINCIPAL
CPU
DISP.
E/S
MEMÓRIA
PRINCIPAL
CPU
DISP.
E/S
Link de comunicação
18. Sistemas com Múltiplas CPUs
• Sistemas com múltiplas CPUs fracamente acoplados:
– Possuem dois ou mais sistemas computacionais
conectados através de linhas de comunicação;
– Cada sistema funciona de forma independente, possuindo
seu próprio sistema operacional e gerenciando seus
próprios recursos, como UCP, memória e dispositivos de
entrada/saída;
– Também são conhecidos como sistemas
multicomputadores;
– Neste modelo, cada sistema computacional também pode
ser formado por um ou mais processadores.
18
18
19. Sistemas com Múltiplas CPUs
• Sistemas com múltiplas CPUs fracamente acoplados:
– Com base no grau de integração dos hosts da rede,
podemos dividir os sistemas fracamente acoplados em
sistemas operacionais de rede e sistemas distribuídos;
– A grande diferença entre os dois modelos é a capacidade
do sistema operacional em criar uma imagem única dos
serviços disponibilizados pela rede.
19
19
20. Sistemas com Múltiplas CPUs
• Sistemas com múltiplas CPUs fracamente acoplados:
20
– Sistemas Operacionais de Rede:
• Permitem que um host compartilhe seus recursos,
como uma impressora ou diretório, com os demais
hosts da rede;
• Um exemplo deste tipo de sistema são as redes locais,
onde uma estação pode oferecer serviços de arquivos e
impressão para as demais estações da rede, dentre
outros serviços.
20
21. Sistemas com Múltiplas CPUs
• Sistemas com múltiplas CPUs fracamente acoplados:
21
– Sistemas Operacionais de Rede:
• Permitem que um host compartilhe seus recursos,
como uma impressora ou diretório, com os demais
hosts da rede;
• Os usuários têm o conhecimento dos hosts e seus
serviços;
• Um exemplo deste tipo de sistema são as redes locais,
onde uma estação pode oferecer serviços de arquivos e
impressão para as demais estações da rede, dentre
outros serviços.
21
22. Sistemas com Múltiplas CPUs
• Sistemas com múltiplas CPUs fracamente acoplados:
22
– Sistemas Distribuídos:
• O sistema operacional esconde os detalhes dos hosts
individuais e passa a tratá-los como um conjunto único,
como se fosse um sistema fortemente acoplado;
• Os sistemas distribuídos permitem, por exemplo, que
uma aplicação seja dividida em partes e que cada parte
seja executada por hosts diferentes da rede de
computadores;
22
23. Sistemas com Múltiplas CPUs
• Sistemas com múltiplas CPUs fracamente acoplados:
23
– Sistemas Distribuídos:
• Para o usuário e suas aplicações é como se não
existisse a rede de computadores, mas sim, um único
sistema centralizado;
• Um exemplo de sistemas distribuídos são os clusters.
Em um cluster existem dois ou mais servidores ligados,
normalmente, por algum tipo de conexão de alto
desempenho.
23
24. Classificação dos Sistemas
24
Operacionais
• Existem outras abordagens para se classificar sistemas
operacionais:
– Sistemas operacionais de computadores de grande porte;
– Sistemas operacionais de servidores;
– Sistemas operacionais de multiprocessadores;
– Sistemas operacionais de computadores pessoais;
– Sistemas operacionais de computadores portáteis;
– Sistemas operacionais embarcados;
– Sistemas operacionais de nós de sensores;
– Sistemas operacionais de tempo real;
– Sistemas operacionais de cartões inteligentes (smart cards);
24
25. 25
Exercícios
1. Faça uma pesquisa e apresente, na forma de itens, as características dos
seguintes sistemas operacionais:
a) Sistemas operacionais de tempo real;
b) Sistemas operacionais embarcados;
c) Sistemas operacionais de redes;
d) Sistemas operacionais de multiprocessadores;
e) Sistemas operacionais de computadores de grande porte;
f) Sistemas operacionais distribuídos.
2. Relacione algumas diferenças entre os sistemas operacionais de
computadores pessoais e os sistemas operacionais de computadores de
grande porte.
3. Qual é a principal dificuldade que um programador deve superar quando
estiver escrevendo um sistema operacional para um ambiente de tempo
real? 25
26. Bibliografia
• Deitel, H. M.; Deitel, P. J.; Choffnes, D. R. Sistemas
Operacionais. 3. ed. São Paulo: Pearson, 2005.
• Tanenbaum, A. S. Sistemas Operacionais Modernos. 3. ed. p.
1-47. São Paulo: Pearson, 2010.
• Jandl Jr., P. Notas sobre Sistemas Operacionais. p. 3-20.
2004. (disponível na Internet)
• Maziero, C. A. Sistemas Operacionais: Conceitos e
Mecanismos. p. 1-25. 2013. (disponível na Internet)
• Duarte, M. Tipos de Sistemas Operacionais.
iMasters Fóruns. http://forum.imasters.com.br/
topic/333787-tipos-de-sistemas-operacionais/.
<Acessado em 20/07/2014>