Suporte ao Sistema Operacional
DI
UFPE
GRECO
Sistema Operacional
Funções:
• Auxilia na criação e execução de programas
• Acesso a arquivos
• Atua como interface software
hardware
Objetivos
• Conveniência
• Eficiência
DI
UFPE
GRECO
Níveis do S.O.
Usuário
Programador
Aplicativos
Utilitários
Sistema Operacional
Computador (Hardware)
DI
UFPE
GRECO
Projetista
de S.O.
Serviços Oferecidos
Nível de Usuário
• Controle de
programas
• Operações de E/S
• Sistema de arquivos
DI
UFPE
GRECO
Nível de Sistema
• Gerenciamento de
memória
• Proteção
• Alocação de recursos
e escalonamento
(gerenciamento de
processos)
• Accounting
Tipos de sistemas operacionais
Serial batch
Alocação
• superposição: spooling
Multiprogramação
Escalonamento
• superposição: E/S e processamento
Time sharing
• paralelismo virtual
DI
UFPE
GRECO
Proteção
Aumento da
Funcionalidade
Tipos de S.O.
Unitarefa
Multi-tarefa
DI
UFPE
GRECO
Batch
Interação c/ Usuário
Batch simples
Dedicado
Batch avançado
Time-sharing
Batch Simples
Ponto de vista do Monitor
Ponto de vista da CPU
- Monitor põe job na
mem. de programas
- CPU executa monitor
- Lê Job
- Jump para job
- Monitor passa
controle p/ job
- Job termina
- Controle volta ao monitor
DI
UFPE
GRECO
- CPU executa Job
- Se houver erro ou job
acabar -> jump para
monitor
Batch simples
Processamento
interrupções
Device Drivers
Sequenciamento
de jobs
Interpretador da
ling. de controle
Monitor
Leitura 1 record:
Execução 100 instr.:
Escrita 1 record:
TOTAL:
.0015 sec.
.0001 sec
.0015 sec
.0031 sec
Área de programa
de usuário
Utilização CPU: 3.2%
DI
UFPE
GRECO
Batch Avançado:
Multiprogramação
run
wait
run
wait
run
wait
run
Uniprogramação
time
wait run
run run
wait
wait
run
Prog.A
wait
run
wait
Prog.B
run
wait
AeB
wait
run
Multiprogramação
com 2 programas
time
Multiprogramação
com 3 programas
run
run
run
run run wait run
run run
time
DI
UFPE
GRECO
Prog.B
wait
wait
run
run
run
wait
Prog.A
wait
wait
wait
Prog.C
A, B e C
Exemplo
Tipo
Duração
Memória req.
Disco
Terminal
Impressora?
Job1
Job2
Job3
computação
5 min.
50K
E/S
15 min
100K
E/S
10min
80K
X
X
X
Uniprogramação
Utilização proc.
Utilização mem.
Utilização disco.
Utilização impres.
Taxa de trabalho
Tempo resp. médio
Tempo total
DI
UFPE
GRECO
Multiprogramação
17%
30%
33%
33%
6 jobs/hora
33%
67%
67%
67%
12 jobs/hora
18 min.
30 min.
10 min.
15 min.
Time sharing
Objetivo
Fonte instr. Do S.O.
1950
Batch Multiprogramação
Time Sharing
Max. utilização proc.
Inst. de controle
com o job
Min. tempo resp.
Comandos
no terminal
1960
Multics
1970
1980
Mainframes
Nenhum Compiladores Time Multi-user
Distributed
software
shared
systems
Resident Batch
Monitors
1960
1970 Unix 1980
Minicomputers
Nenhum Compiladores Time Multi-user
software
shared
Resident monitors
1970
Microcomputers
DI
UFPE
GRECO
Nenhum Compiladores
software Interactive
Resident monitors
Distributed
systems
1980 Unix
Distributed
systems
Gerenciamento de Processos
DI
UFPE
GRECO
Processo
Programa que foi ativado
Estados de um processo:
Criação
New
Escalonador
Término
Ready
Evento
ocorreu
DI
UFPE
GRECO
Running
Halted
Esperando
Waiting evento
Bloco de Controle
ID do Processo
Estado
Prioridade
Program Counter
Memory Pointers
Contexto (regs.)
I/O Status
Accounting Info
• tempo CPU
• limites, etc.
Gerenciamento de Processos
DI
UFPE
GRECO
Criação / Término
Escalonamento / Chaveamento
Proteção de Recursos
Sincronização / Comunicação
Níveis de processos
usuário
usuário
usuário
usuário
supervisor
• funções não críticas
booting
ger. mem.
disco
terminal
ger. arq.
• funções críticas
clock
manipulação de excessões
tratamento de E/S
tratamento de
excessões
• integridade
DI
UFPE
GRECO
Scheduling
High-level
• Decide quantos programas são admitidos no sistema.
• Aloca memória e cria um processo.
• Controla a long-term queue
Short-term
• Decide qual processo deve ser executado
• Controla a short-term queue
I/O
• Decide qual processo (com I/O) pendente deve ser tratado
pelo dispositivo de I/O
• Controla a I/O queue
DI
UFPE
GRECO
Estruturação das filas
Short-term
scheduling
Process
request
Longterm
queue
High-level
scheduling
Interrupt
of process
Interrupt
from I/O
DI
UFPE
GRECO
Interrupt
Handler
Shortterm
queue
CPU
I/O
I/O
queue
I/O
I/O
queue
I/O
I/O
queue
FIM
I/O scheduling
Exemplo de Escalonamento
Sist. Operacional
Contr. Serviços
Scheduler
contr. interrupção
A
Run
Executando
B
“Ready”
Outros processos
DI
UFPE
GRECO
ExecuSist. Operacional
tando
Sist. Operacional
Contr. Serviços
Contr. Serviços
Scheduler
contr. interrupção
A
“Waiting
B
“Ready
Outros processos
Scheduler
contr. interrupção
A
“Waiting
B
Run
Executando
Outros processos
Processo A parou:
• Req. serviço ao S.O.
• Interrupção de A
Ex. erro
• Interrupção de outra
fonte
Ex. I/O
Proteção de Recursos
Proteção de recursos (dados, etc.)
 Segurança
e privacidade
 Necessidade de comunicação
 Métodos
• Prevenção (Ling. alto-nível)
• Detecção e Resolução (Hardware: exceções)
DI
UFPE
GRECO
Proteção de Recursos via Hardware
Análise de operações ilegais
Proteção via opcode
• Instruções privilegiadas (E/S ...)
• Detecção do nível de operação
– supervisor
– usuário
Proteção via operando
• Privilégios de acesso
• Análise de domínio
– área de memória
– objeto definido pelo usuário
DI
UFPE
GRECO
Proteção de Área de Memória
Domínio único
• Cada processo possui espaço de memória definido
Domínio duplo
• Parte pública: bibliotecas (compartilhamento total)
• Parte privada: programa de usuário
Múltiplos domínios
• Conjunto compartilhado
– Ex: Sa = {a1,a2,a3}, Sb = {a3,b4,b5}
– Como implementar ?
DI
UFPE
GRECO
Sincronização de Processos
Execução paralela de processos
• Real (multiprocessador) ou virtual (time sharing)
• Problemas de sincronização
Process observer
repeat
observe um evento
cont = cont + 1
until false
DI
UFPE
GRECO
Process reporter
repeat
if (cont mod 10) = 0
print (cont)
until false
Situação: reporter testou cont = 10
observer cont = 11
reporter imprimiu cont = 11
• velocidade imprevisível dos processos
• compartilhamento de dados
condição de corrida
controle no acesso às variáveis
compartilhadas
Problema da Exclusão Mútua
Garantir que apenas um processo acesse
um dado compartilhado por vez:
• definição de seções críticas
Problemas:
• deadlock
• starvation (oposto de fairness)
DI
UFPE
GRECO
Resolvendo a exclusão mútua
Busy-waiting
• Controle de acesso a região
– variável Lock
Lock = 0 pode entrar
lock = 1 bloqueado
DI
UFPE
GRECO
loop: test lock
bne loop
add #1, loop
Desabilitar interrupções
Simplicidade
Regiões devem ser pequenas
Inviável em multiprocessadores
e se houver
Interrupção?
Suporte da arquitetura
Operações atômicas: Ex. Test-and-set (tas)
• tas <dst>
if dst = 0
then dst = 1
wait: tas lock
bmi wait
critical section
clr.b lock
Indivisível
Semáforos
PeV
 Monitores
Programa que engloba controla o recurso
compartilhado e que tem acesso restrito
DI
UFPE
GRECO
Aumento de Eficiência: Memória Virtual
Operating
System
Long-Term
Queue
Memória
Job Sheduling
Jobs completos
e User Sessions
Disco
Swapping
Operating
System
Disco
Intermediate Queue
Jobs completos
e User Sessions
Long-Term Queue
DI
UFPE
GRECO
Memória