O documento descreve o que é um sistema operacional, seus principais componentes, objetivos e serviços. Um sistema operacional atua como intermediário entre o usuário e o hardware, fornecendo um ambiente para execução de programas e alocando recursos de forma eficiente. O texto também resume a evolução histórica dos sistemas operacionais desde os primeiros sistemas em lote até os sistemas distribuídos e de tempo real modernos.
2. O que é um sistema operacional ?
• Um programa que atua como intermediário entre o usuário
e o hardware de um computador com propósito de
fornecer um ambiente para execução de programas.
Programas
Sistema Operacional
Hardware
3. Componentes Genéricos de um Sistema Computacional
• Hardware: Memória, dispositivos de E/S, CPU, etc
• Sistema Operacional: Coordena e controla o uso dos recursos do
sistema entre os vários programas aplicativos e usuários
• Programas aplicativos e de sistema
• Usuários
4. Objetivos de um Sistema Operacional
• Fornecer ao programador/usuário uma forma mais conveniente para a
operação do computador
– Esconde complexidade e detalhes internos inerentes à manipulação e controle dos
componentes de hardware.
– Reduz tempo de preparação de um programa.
– Permite a execução do mesmo programa em ambientes diferentes
– Permite várias aplicações trabalharem simultaneamente
Controla a interação entre:
Usuários e hardware
Os diversos usuários
• Utilizar o Hardware e demais recursos de um computador de forma
eficiente
– Potencial maior de utilização de recursos em decorrência da implementação de
boas políticas de distribuíçao de recursos
5. E afinal o que é um sistema operacional ?
• Uma máquina virtual
– Esconde aspectos de Hardware de modo a facilitar a vida do programador, apresentando uma
interface simplificada
• A interface do usuário não corresponde ao hardware existente.
• Permite executar o mesmo programa em vários ambientes diferentes.
• Um Gerente/Alocador de Recursos
– Decide que pedidos devem ser atendidos de modo que o sistema possa trabalhar de forma
eficiente
• Um Programa de Controle
– Controla a execução de programas do usuário para evitar erros e inconsistênciap proteger
usuários uns dos outros
6. Principais Serviços e Funções de um SO
• Criação e execução de programas
• Acesso a dispositivos de E/S
• Controle de Acesso a arquivos
• Acesso a recursos do sistema
• Concorrência
• Contabilidade
• Detecção de erros (Hw/Sw)
7. Diferentes Visões de um SO
Visão Usuário Final X Programador X Projetista de Sistema Operacional
Usuário
Programador
Aplicativo
Projetista SO
Utilitários
SO
Hardware
8. Visão Usuário
• Chamadas de Sistema - maneira usada pelo programa para solicitar um serviço do SO
- semelhante a chamada de uma sub-rotina
• Serviços executados pelo núcleo do SO
Gerência de memória, gerência de dispositivos, gerência de
arquivos e gerência de processador
Programas de Sistema
• Programas executados fora do núcleo do SO ( Utilitários), normalmente confundido com o próprio
SO: compiladores, interpretadores de comandos, GUI
Visão Projetista de SO
• Forma pela qual o sistema implementa os serviços: interrupção, exceção, chamadas de Sistema
9. Revisão Histórica dos SO
Fase primitiva
• Sistema Operacional inexistente
– Programação através de chaves no painel.
– Conjuntos de cartões manualmente carregados pelo operador(programador)para executar os programas.
– Toda atividade é sequencial: sem nenhuma sobreposição entre computação, E/S e tempo de ociosid do usuário
Sistemas em Lote(Batch)
• Introdução de operadores profissionais
– Preparação de jobs ( tarefas ) - progama, dados e informações de controle)
Jobs normalmente agrupados em lotes por necessidade semelhantes ( por exemplo,
mesmo compilador)
– Sequenciamento automático de jobs
– Idéia rudimentar de um SO: manter um monitor residente em memória que é executado
inicialmente. O monitor passa o controle para um job que retorna quando encontrar um
sinalizador de finalização (cartão de controle)
– Niveis elevados de ociosidade de CPU - diferença de velocidades entre CPU e Dispositivos de
Entrada/Saída
10. Revisão Histórica dos SO
Sistemas em Lote(Batch)
• Introdução da multiprogramação
– Com hardware para tratamento de interrupções e para armazenamento de vários jobs em disco
é possível ter acesso direto aos jobs, o que viabiliza a escala de jobs em uma determinada
ordem, de modo a aproveitar os tempos de cpu ociosa.
– A idéia é manter vários programas em memória ao mesmo tempo. Enquanto um programa
aguarda E/S, outro pode ser executado
11. Sistemas Time Sharing ( Tempo Compartilhado )
– Extensão lógica da multiprogramação que permite a interação do usuário com o sistema de
computação
• Permite a comunicação direta entre os usuários e o sistema através de uma conexão terminal-
computador
• Divisão do tempo de processamento entre os vários usuários
• Requer tempo de resposta curto
• São mais complexos que os sistemas operacionais multiprogramados
A idéia básica surguiu com o Sistema Multics que evoluiu para o UNIX
Escalonamento
Proteção
Tempo de resposta
Ataques
Sistema de arquivos.
• Base dos SOs modernos.
12. Sistemas Monousuário
– Projetados para serem usados por um único usuário, por exemplo,MS- DOS, Winsows 3.x,
Windows 9x
Sistemas Multiusuário
– Suportam várias sessões de usuário em um computador, por exemplo, UNIX, Windows-NT
Sistemas Monotarefa
– Podem executar apenas uma tarefa de cada vez, por exemplo o MS-DOS
Sistemas Multitarefa
– Permitem executar várias tarefas simultaneamente
• Tarefas cooperativas, por exemplo, Windows 9x
• Tarefas preemptivas, por exemplo UnIX, OS/2
Sistemas de Computadores Pessoais
• Inicialmente baratos e simples e depois beneficiados com as idéias dos sistemas para mainframes
MS-DOS, Microsoft Windows, Apple Macintosh, OS/2
13. Sistemas Distribuídos
– Conjunto de computadores autônomos interconecatados por uma rede, que colaboram para a
execuçã de determinados serviçõs.
Transparência em relação ao número de máquinas
Software fornece uma visão única do sistema
Sistemas de Tempo Real
– Requisitos rígidos de tempo na operação de um processador ou de um fluxo de dados