Apresentação

Propaganda
Introdução
Introdução aos Sistemas
Usuário
1
Operacionais
Ambientes Operacionais
Prof. Simão Sirineo Toscani
[email protected]
www.inf.pucrs.br/~stoscani
Compilador
Usuário
2
Usuário
3
Editor de
texto
Browser
...
Usuário
n
Quake
Programas Aplicativos
Sistema Operacional (infraestrutura)
Hardware
1
2
Recursos gerenciados pelo SO
Introdução
Usuário
1
Usuário
2
Usuário
3
...
Usuário
n
„
Compilador
Editor de
texto
Browser
Quake
„
Aplicativos
„
Sistema Operacional (infraestrutura)
„
Hardware
Tempo de CPU
Espaço de memória
Espaço em disco
Periféricos
Hardware = Recursos físicos
Aplicativos = Resolvem os problemas dos usuários
Sistema Operacional = Controla e coordena o uso do hardware pelas aplicações
3
SO é um programa de controle
„
„
4
SO existe porque é útil
Controla dispositivos de I/O e os programas
que resolvem os problemas dos usuários
Previne erros e o uso impróprio do
computador
5
„
Cria um sistema computacional usável
„
As aplicações possuem necessidades em
comum que são atendidas pelo SO: alocação
e controle de recursos
6
1
Uma definição para Sistema
Operacional
Histórico
O objetivo do SO é permitir o uso do computador de
forma fácil e eficiente.
„
Primeiros sistemas - somente hardware
‰
Pode-se dizer que o SO de um computador é a
parte de software que estende os recursos de
hardware da máquina, tornando a utilização do
equipamento mais fácil, mais eficiente e mais
confiável.
‰
‰
‰
programas carregados na memória através de
chaves, fita de papel ou cartões perfurados
inicio da execução através de botões
andamento da execução acompanhado através
de luzes no painel
resultado em papel (impressora), fita de papel ou
cartão perfurado
7
Histórico
8
Histórico
„
‰
‰
Se ocorria erro, o programa era parado para que
a memória e os registradores fossem
examinados. Consertava-se o programa e
repetia-se o processo.
„
Quando surgiram FORTRAN e COBOL, a operação
ficou mais difícil
Execução de um programa FORTRAN:
„
„
Programador = operador
„
„
‰
Tabela de horário para reservas de horas de
máquina
„
„
„
Carrega fita magnética com o compilador
Lê programa de cartões, gera assembler em cartão
Carrega fita com o montador
Lê o programa assembler e gera código de máquina,
sem as rotinas da biblioteca.
Carrega fita com o ligador
Lê código de máquina e liga com as rotinas da
biblioteca, gerando código EXE
carrega EXE e executa programa
9
Características do Ambiente
„
Grande tempo de preparação para colocar e
retirar fitas e colocar e tirar cartões
„
Erro em qualquer etapa = volta ao início
„
Durante a preparação a CPU ficava parada
10
Histórico
‰
Uso de operadores profissionais = preparação
mais rápida
„
‰
‰
11
programador sem acesso à console
Lotes (batches): jobs com necessidades
parecidas reunidos em lotes para minimizar as
trocas de fitas
Melhorou, mas ainda em muitos momentos a
CPU ficava parada
12
2
Organização do Monitor Residente
Histórico
„
Monitor residente
‰
‰
‰
Tabela de interrupção
Pequeno programa que ficava o tempo todo na
memória, transferindo automaticamente o
controle de um job para outro (era um
seqüenciador automático de jobs)
Controladores de Dispositivos (drivers)
Interpretador de cartões e Seqüenciador de jobs
Área para programas dos usuários
Sua vantagem era a redução do tempo
desperdiçado entre 2 jobs do mesmo batch
Pode ser considerado o primeiro SO criado
(bastante rudimentar).
13
Monitor Residente
14
Performance
„
„
Em resumo, o monitor residente:
„
‰
‰
implementa um interpretador de linguagem de
comandos (linguagem para comunicação com o
SO)
„
Todas mudanças feitas visaram obter melhor desempenho do
computador
O maior avanço foi a operação humana ter sido substituída pelo
monitor residente
Contudo, a CPU passava a maior parte do tempo esperando por
I/O (dispositivos mecânicos)
„
implementa rotinas que facilitam o uso do
harware
„
Enquanto um compilador era capaz de processar 300 linhas (cartões)
por segundo, a leitora conseguia ler apenas 2 cartões/seg (i.é, a CPU
ficava parada em 93% do tempo, durante a compilação)
Técnicas para minimizar o problema:
„
„
„
operação off-line
bufferização
spooling
15
Operação off-line
„
„
„
Bufferização
Um computador satélite lia cartões e gravava suas
imagens em fita magnética
O computador principal trabalhava apenas com fitas
magnéticas:
‰
16
Dados eram lidos de fitas magnéticas (não de cartões) e
resultados eram escritos em fitas magnéticas (não em
impressoras), pois estas unidades eram bem mais rápidas
que leitoras de cartão e impressoras
Os resultados das execuções (gravados em fita)
eram descarregados na impressora por outro
computador satélite
17
„
Tenta manter a CPU e os dispositivos de I/O
o tempo todo ocupados
„
Operação de I/O acontece em paralelo com a
computação, via canais (I/O processors)
„
Comunicação através de buffer
18
3
Bufferização - características
„
O buffer pode ser grande, mas é limitado
„
Maior eficiência é obtida quando o uso do
buffer está associado com interrupções
‰
Spooling
„
Quando um dispositivo de I/O termina a tarefa, ele
interrompe a CPU. O hardware salva o contexto de
execução na pilha e busca o endereço do tratador de
interrupções na tabela de interrupção
Técnica que utiliza o disco como um grande
buffer. E/S e computação são realizadas
simultaneamente.
„
„
A bufferização é pouco eficiente no caso de
jobs do tipo I/O-bound (job que faz muito I/O)
ou CPU-bound (job que faz pouco I/O).
Fitas mágnéticas: acesso seqüencial (não permite
acesso simultâneo)
Disco magnético: acesso a qualquer posição e a
qualquer momento
19
Spooling
„
„
„
20
Multiprogramação
Os jobs a serem executados ficam em filas,
no disco. Existem tabelas que indicam a
localização dos jobs e de seus dados.
Job pool: estrutura de dados importante,
identifica os jobs que se encontram no disco
prontos para a execução
Job scheduling: processo de escolha do
próximo processo a ser executado entre os
que estão no disco
„
Aumenta a utilização da CPU, tendo sempre
algum programa para executar:
‰
‰
‰
‰
um job é escolhido e inicia a execução
job pára devido a um I/O
SO escolhe outro job e inicia sua execução (sem
multiprogramação, a CPU teria que parar)
quando o primeiro job é liberado (acaba o seu
I/O) ele fica apto a receber a CPU novamente
21
Multiprogramação
„
„
Sistemas Operacionais Clássicos
Os primeiros sistemas multiprogramados
foram implementados através da extensão
da técnica de spooling.
O SO continha 3 grandes processos:
„
„
„
22
„
„
„
Batch
Time-sharing
Real-time
input spooler
executive
output spooler
23
24
4
Sistemas Operacionais tipo Batch
„
Com o passar do tempo, a palavra batch
passou a designar um processo onde o
usuário não interage com o seu programa
„
O que caracteriza um SO batch é o fato de
não haver comunicação do usuário com o
seu programa, durante a execução
„
Tempo de turnaround: tempo entre a
entrega dos cartões e o recebimento da
listagem com os resultados da execução
Sistemas Operacionais Time-sharing
„
Um SO time-sharing permite que diversos
usuários compartilhem o computador em um
dado instante, dando a cada um a sensação
de que o computador encontra-se dedicado a
ele.
25
Time-sharing
„
„
26
Time-sharing
Cada usuário possui seu programa (ou parte dele)
na memória principal. O processador é alocado por
um pequeno período de tempo (fatia de tempo ou
time slice) a cada programa de usuário.
„
Implementação:
‰
‰
Cada programa executa até ser interrompido (final
de fatia de tempo ou solicitação de I/O). Quando
interrompido os valores dos registradores são
salvos e o processador é alocado para outro
processo
‰
‰
SO dispõe de multiprogramação
cada usuário possui um job ativo vinculado a um
terminal
a comunicação via terminal é lenta, sobra CPU
para os outros terminais
os usuários compartilham a CPU (time-sharing)
27
Sistema de Tempo Real
„
Proteção
Principal característica:
‰
‰
„
28
„
Deve responder, dentro de um período de tempo
previamente especificado (geralmente muito pequeno), a
estímulos gerados externamente
Portanto, os tempos de resposta são críticos
„
Um SO tempo real utiliza conceitos de
multiprogramação e oferece facilidades para as
aplicações de tempo real
‰
Nos primeiros sistemas tinha-se um usuário
por vez, com controle completo sobre a
máquina
SO começa a compartilhar recursos entre
usuários (maior eficiência)
Entre as facilidades está um escalonador preemptivo que
leva em conta as prioridades dos processos.
29
30
5
Compartilhamento
Proteção de I/O
„
„
Melhora a utilização do sistema, mas
aumenta os problemas de segurança
„
Proteção realizada parte em software e parte
em hardware
‰
„
„
hardware: utiliza interrupções geradas
internamente pela CPU (traps).
„
A programação de rotinas de E/S é uma programação
de baixo nível (detalhada) muito sujeita a erros. Por
isso, essas rotinas fazem parte do SO.
Isto resulta em duas vantagens:
‰ (1) garante segurança para o SO
‰ (2) facilita a tarefa de programação para os usuários
Mas o que garante que um programa de usuário (por
erro ou por malícia) não tente acessar um dispositivo de
E/S diretamente?
Solução: hardware passa a trabalhar em dois modos
„
„
modo usuário
modo monitor
31
Proteção de I/O
„
As instruções de I/O são privilegiadas, só
podem ser executadas em modo monitor.
„
Se um programa de usuário tenta executar
uma destas instruções, ocorre um trap.
„
32
Proteção de Memória
„
Para que o usuário não receba a CPU em
modo monitor ou corrompa o funcionamento
do sistema, é necessário proteger a Tabela
de Interrupção e as rotinas do monitor
„
Um registrador limite (fence register) é
suficiente para sistemas monoprogramados
O programa usuário só pode realizar I/O
através do SO
‰
Em modo usuário, cada endereço é comparado com o
fence register. Se o programa tenta acessar um endereço
menor que o valor do fence register ocorre um trap (e a
execução vai para o SO)
33
Proteção contra a monopolização da CPU
Proteção de Memória
„
Para sistemas multiprogramados, o hardware
precisa utilizar dois registradores:
„
„
„
„
34
„
Registrador limite inferior
Registrador limite superior
Toda vez que o SO seleciona um novo programa
para executar, ele atualiza os valores desse dois
registradores para que eles indiquem a área
ocupada pelo programa.
Em modo usuário, cada endereço é comparado
com os dois registradores.
Um job deve ser impedido de usar a CPU
eternamente
‰
‰
35
Temporizador (timer) interrompe a CPU a cada
n milisegundos (n é da ordem de 20 mS)
Cada interrupção ativa o monitor, que decide em
continuar ou não o programa do usuário
36
6
Download