Sistemas Operacionais

Propaganda
Sistemas Operacionais
O que se espera de um sistema de computação?
•
•
Execução de programas de usuários
Permitir a solução de problemas
Sistema Operacional (SO) é um programa colocado entre o hardware
do computador e os programas dos usuários de forma a atingir esses
dois objetivos.
Programas
Sistema Operacional
Hardware
Estrutura do Sistema Computacional:
• O sistema computacional pode ser dividido em 4 componentes genéricos
–
–
–
–
Hardware
• Recursos básicos (CPU, memória, dispositivos de E/S)
Sistema Operacional
• Controla e coordena o uso do hardware entre vários programas
aplicativos e usuários
Programas aplicativos e de sistema
• Define como os recursos de hardware são empregados na solução de
um problema (Processadores de texto, compiladores, browsers,
SGBDs, vídeos, jogos, etc)
Usuários
• Pessoas, máquinas, outros computadores
Sistemas Operacionais – Aula 1
1
Componentes genéricos do Sistema Computacional:
Sistema Operacional: Conceito
• Um programa que controla a execução de programas aplicativos
• Interface entre aplicativos e hardware
Duas visões para definir o Sistema Operacional:
• SO é um alocador de recursos
Gerencia todos os recursos
– Decide entre requisitos conflitantes para uso mais eficiente dos
recursos
• SO é um programa de controle
– Controla a execução dos programas para prevenir erros e uso
impróprio do computador
• Não existe uma definição completamente adequada
–
Sistemas Operacionais – Aula 1
2
Objetivos do Sistema Operacional
• Tornar mais conveniente a utilização de um computador
“Esconder” detalhes internos de funcionamento
• Tornar mais eficiente a utilização de um computador
– Gerenciamento “justo” dos recursos do sistema
• Facilitar a evolução do sistema
– Desenvolvimento, teste e atualização de novas facilidades
–
Sistema Operacional: interface entre usuário/computador
Usuário
final
Aplicativos
Utilitários
Programador
Projetista
de SO
Sistema Operacional
Hardware
Serviços oferecidos pelo Sistema Operacional
• Criação de programas (Editores, depuradores, compiladores)
• Execução de programas (Carga de programas em memória)
• Acesso a dispositivos de E/S
• Controle de acesso a arquivos
• Acesso a recursos de sistema (Proteção entre usuários)
• Contabilidade (Estatísticas, monitoração de desempenho, sinalizar
upgrades necessários de hardware)
• Detecção de erros
– Erros de hardware (erros de memória, falha de dispositivo de E/S)
– Erros de programação (acesso não autorizado a posições de memória)
– Aplicação solicita recurso que o SO não pode alocar
Sistemas Operacionais – Aula 1
3
As diferentes imagens de um Sistema Operacional
• Sistema operacional na visão do usuário:
Imagem que o usuário tem do sistema
– Inferface oferecida ao usuário para ter acesso a recursos do sistema
– Chamadas de sistema
– Programas de sistema
• Sistema operacional na visão do projeto
– Organização interna do sistema operacional
– Mecanismos empregados para gerenciar recursos do sistema
–
Chamadas de sistema
• Forma que programas solicitam serviços ao sistema operacional
Análogo a sub-rotinas
– Transferem controle para o sistema operacional invés de
transferir para outro ponto do programa
• É o núcleo (kernel) do sistema operacional que implementa as chamadas
de sistema
– Existem chamadas de sistema associadas a gerência do processador,
de memória, arquivos e de E/S
• Variação: micro-kernel
– Serviços básicos são implementados pelo micro-kernel
– O kernel implementa os demais serviços empregando esses serviços
básicos
–
Programas de sistema
• Programas executados fora do kernel (utilitários)
• Implementam tarefas básicas:
–
–
Muitas vezes confundido com o próprio SO (por exemplo compiladores,
assemblers etc)
Interpretador de comandos (ativado sempre que o SO inicia uma seção
de trabalho / interface gráfica de usuário)
Sistemas Operacionais – Aula 1
4
Histórico dos Sistemas Operacionais
Primórdios (década de 40): Sistema operacional inexistente
• O programador também é o operador
Existe uma planilha para alocação de horário da máquina
O programador controla todo o equipamento
O programa acessa diretamente os periféricos
A evolução foi motivada por:
Melhorar a utilização dos recursos
Avanços tecnológicos (novos tipos de hardware)
Adição de novos serviços
Sistema em lote (batch)
Introdução de operadores profissionais
Usuário não era mais o operador da máquina
Job
Programa a ser compilado e executado, acompanhado dos dados de
execução (cartões perfurados)
Jobs são organizados em lote (batch)
Jobs possuem necessidades semelhantes (ex. Mesmo compilador)
Passagem entre jobs continua sendo manual
Operador atento à console do computador
Um job pode exigir a execução de vários programas
Evolução:
Sequenciamento automático de jobs, transferindo o controle de um
job a outro
Primeiro Sistema Operacional (rudimentar)
Sistemas Operacionais – Aula 1
5
Monitor residente (década de 50)
É um programa que fica permanentemente em memória
Função: automatizar a transição entre programas
Funcionamento do monitor residente:
Execução inicial
Controle é transferido para o job (cartões controle)
Quando um job termina o controle retorna ao monitor
O monitor residente carrega o próximo programa
Cartões de controle indicam o que fazer
• Identificação do usuário
• Tempo de execução
Origem das linguagens de programação
Monitor residente centraliza as rotinas de acesso aos periféricos
• As aplicações não acessam os periféricos diretamente
• Início da chamada de sistema
Sistema batch multiprogramado – multitarefa (década de 60)
No monitor residente um programa é executado de cada vez
Desperdício de tempo de CPU com operaç
Evolução:
Manter diversos programas na memória ao mesmo tempo
Enquanto um programa realiza E/S, outro pode ser executado
Desperdício CPU
Requisição
E/S
Multiprogramação
Término
E/S
tempo
Sistemas Operacionais – Aula 1
Requisição
E/S
Término
E/S
tempo
6
Multiprogramação
Manter mais de um programa em “execução” simultaneamente
O tempo do processador é dividido entre vários programas
Na multiprogramação os periféricos são melhor utilizados
O processador fica menos tempo parado
Duas
inovações de hardware possibilitaram o surgimento
multiprogramação: interrupções e discos magnéticos
Interrupções
• Sinalizações de eventos
• Aviso do periférico (início ou término)
Discos magnéticos
• Acesso randômico a diferentes jobs no disco
• Melhor desempenho em acesso de E/S
da
Sistemas Timesharing (década de 70)
Tipo de multiprogramação
Além da multiprogramação, cada usuário possui um terminal
Interação com o programa em execução
Ilusão de possuir a máquina dedicada a execução de seu programa
Divisão do tempo de processamento entre usuários
Tempo de resposta é importante
Sistema Monousuário vs. Multiusuário
Sistema monousuário - Projetados para serem usados por um único
usuário
Ex. MS-DOS, Windows 3.x, Windows9x, Millenium
Sistema multiusuário - Projetados para suportar várias sessões de
usuários em um computador
Ex. Windows NT (2000), UNIX
Sistemas Operacionais – Aula 1
7
Sistema Monotarefa vs. Multitarefa
Sistema monotarefa - Capazes de executar apenas uma tarefa de cada
vez
Ex. MS-DOS
Sistema multitarefa – Projetados ara suportar várias sessões de
usuários em um computador. Existem dois tipos de sistemas
multitarefas:
Não preemptivos (cooperativo) - Ex. Windows 3.x, Windows9x
(aplicativos 16 bits)
Preemptivos - Ex. Windows NT, OS/2, UNIX, Windows9x
(aplicativos 32 bits)
Sistemas Operacionais Distribuídos
Distribuir a realização de uma tarefa entre vários computadores
interconectados através de algum tipo de rede de comunicação
Sistema distribuído:
Conjunto
de computadores autônomos interconectados de
forma a possibilitar a execução de um serviço
Existência de várias máquinas é transparente
Software fornece uma visão única do sistema
Palavra-chave: transparência
Sistemas fracamente acoplados (loosely coupled system)
Máquinas independentes
Cada máquina possui seu próprio sistema operacional
Comunicação é feita através de troca de mensagens entre
processos
Vantagens:
Compartilhamento de recursos
Balanceamento de carga
Aumento de confiabilidade
Sistemas Operacionais – Aula 1
8
Sistemas Operacionais paralelos
Máquinas multiprocessadoras possuem mais de um processador
Sistemas fortemente acoplados (tightly coupled system)
Processadores compatilham memória e relógio comuns
Comunicação é realizada através de memória
Vantagens:
Aumento de throughput (número de processos executados)
Aspectos econômicos
Aumento de confiabilidade
Graceful degradation
Sistemas fail-soft
Symmetric multiprocessing (SMP)
Cada processador executa uma cópia idêntica do sistema
operacional
Vários processos podem ser executados em paralelo sem perda
de desempenho para o sistema
A maioria dos sistemas operacionais atuais suportam SMP
através do conceito de multithreading
Asymmetric multiprocessing
Cada processador executa uma tarefa específica:
Processador mestre para alocação de tarefas a escravos
ex.
Sistemas Operacionais de tempo real
Empregado para o controle de procedimentos que devem responder
dentro de um certo intervalo de tempo
Ex. Experimentos científicos, tratamento de imagens médicas,
controle de processos etc.
Noção de tempo real é dependente da aplicação (milisegundos, minuto,
horas etc)
Dois tipos: Hard real time – tarefas críticas são completadas dentro
de um intervalo de tempo; e Soft real time – tarefa crítica tem maior
prioridade que as demais.
Sistemas Operacionais – Aula 1
9
Download