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
Download

orgcomp8-processos