Upload
ciaran-guy
View
35
Download
1
Embed Size (px)
DESCRIPTION
Suporte ao Sistema Operacional. 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. Usuário. Programador. Aplicativos. Projetista de S.O. Utilitários. - PowerPoint PPT Presentation
Citation preview
GRECO
DIUFPE
Suporte ao Sistema Operacional
GRECO
DIUFPE
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
GRECO
DIUFPE
Níveis do S.O.
Usuário
Aplicativos
Utilitários
Sistema Operacional
Computador (Hardware)
Programador
Projetista de S.O.
GRECO
DIUFPE
Serviços Oferecidos Nível de Usuário• Controle de
programas• Operações de E/S• Sistema de arquivos
Nível de Sistema• Gerenciamento de
memória• Proteção• Alocação de recursos
e escalonamento (gerenciamento de processos)
• Accounting
GRECO
DIUFPE
Tipos de sistemas operacionais Serial batch• superposição: spooling
Multiprogramação• superposição: E/S e processamento
Time sharing• paralelismo virtual
Alocação
Escalonamento
Proteção
Aumento da Funcionalidade
GRECO
DIUFPE
Tipos de S.O.
Batch Interação c/ Usuário
Unitarefa
Multi-tarefa
Batch simples
Batch avançado
Dedicado
Time-sharing
GRECO
DIUFPE
Batch Simples
- Job termina
- Controle volta ao monitor
- Monitor passa controle p/ job
- Monitor põe job na mem. de programas
- CPU executa monitor
- Lê Job
- Jump para job
- CPU executa Job
- Se houver erro ou job acabar -> jump para monitor
Ponto de vista da CPUPonto de vista da CPUPonto de vista do MonitorPonto de vista do Monitor
GRECO
DIUFPE
Batch simples
Processamentointerrupções
Device Drivers
Sequenciamentode jobs
Interpretador daling. de controle
Área de programade usuário
Monitor
Leitura 1 record: .0015 sec.Execução 100 instr.: .0001 secEscrita 1 record: .0015 secTOTAL: .0031 sec
Leitura 1 record: .0015 sec.Execução 100 instr.: .0001 secEscrita 1 record: .0015 secTOTAL: .0031 sec
Utilização CPU: 3.2%
GRECO
DIUFPE
Batch Avançado:Multiprogramação
runrun wait wait
time
runrun wait wait
runrun wait wait
runrun wait waitrunrun
time
wait
runrun wait wait
runrun wait wait
runrun wait waitrunruntime
runrun wait wait
run run
Uniprogramação
Multiprogramaçãocom 2 programas
Multiprogramaçãocom 3 programas
Prog.A
Prog.B
A e B
Prog.A
Prog.B
A, B e C
Prog.C
GRECO
DIUFPE
ExemploJob2Job1 Job3
TipoDuraçãoMemória req.DiscoTerminalImpressora?
computação E/S E/S5 min. 15 min 10min50K 100K 80K
XX
X
Utilização proc.Utilização mem.
Utilização impres.
Utilização disco.
Taxa de trabalho
Tempo resp. médio
17%30%
33%
33%
67%
67%67%33%
6 jobs/hora 12 jobs/hora
18 min. 10 min.
Uniprogramação Multiprogramação
Tempo total 30 min. 15 min.
GRECO
DIUFPE
Time sharingBatch Multiprogramação Time Sharing
ObjetivoFonte instr. Do S.O.
Max. utilização proc. Min. tempo resp.Inst. de controle
com o jobComandos no terminal
Mainframes1950 1960 Multics 1970 1980
Nenhum Compiladores Time Multi-user Distributed software shared systems Resident Batch Monitors
Minicomputers1960 1970 Unix 1980
Nenhum Compiladores Time Multi-user Distributed software shared systems Resident monitors
Microcomputers1970 1980 Unix
Nenhum Compiladores Distributed software Interactive systems Resident monitors
GRECO
DIUFPE
Gerenciamento de Processos
GRECO
DIUFPE
Processo Programa que foi ativado Estados de um processo:
Ready Running
Waiting
New Halted
CriaçãoEscalonador
Término
Esperandoevento
Eventoocorreu
ID do Processo
Estado
Program Counter
Memory PointersContexto (regs.)
I/O Status
Prioridade
Accounting Info• tempo CPU• limites, etc.
Bloco de Controle
GRECO
DIUFPE
Gerenciamento de Processos Criação / Término Escalonamento / Chaveamento Proteção de Recursos Sincronização / Comunicação
GRECO
DIUFPE
Níveis de processos usuário supervisor• funções não críticas
tratamento de E/S• funções críticas
tratamento de excessões• integridade
usuário
ger. mem.booting
usuário usuário
disco
ger. arq.
clockterminal
manipulação de excessões
GRECO
DIUFPE
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
GRECO
DIUFPE
Estruturação das filas
Long-term
queue
Short-term
queueCPU
I/Oqueue
I/Oqueue
I/Oqueue
I/O
I/O
I/O
Processrequest FIM
High-levelscheduling
Short-termscheduling
I/O scheduling
InterruptHandler
Interruptof process
Interrupt from I/O
GRECO
DIUFPE
Exemplo de Escalonamento
Contr. Serviços
Scheduler
contr. interrupção
Sist. Operacional
ARun
B“Ready”
Outros processos
Execu-tando
Sist. Operacional
A“Waiting
B“Ready
Execu-tando
Contr. Serviços
Scheduler
contr. interrupção
Outros processos
A“Waiting
BRun Execu-
tando
Contr. Serviços
Scheduler
contr. interrupção
Outros processos
Sist. OperacionalProcesso A parou:• Req. serviço ao S.O.• Interrupção de A
Ex. erro• Interrupção de outra
fonteEx. I/O
Processo A parou:• Req. serviço ao S.O.• Interrupção de A
Ex. erro• Interrupção de outra
fonteEx. I/O
GRECO
DIUFPE
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)
GRECO
DIUFPE
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
GRECO
DIUFPE
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 ?
GRECO
DIUFPE
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
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
GRECO
DIUFPE
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)
GRECO
DIUFPE
Resolvendo a exclusão mútua
Busy-waiting• Controle de acesso a região– variável Lock
Lock = 0 pode entrarlock = 1 bloqueado
loop: test lock bne loop add #1, loop
e se houver Interrupção?
Desabilitar interrupçõesSimplicidadeSimplicidade
Regiões devem ser pequenasRegiões devem ser pequenas
Inviável em multiprocessadoresInviável em multiprocessadores
GRECO
DIUFPE
Suporte da arquitetura
Operações atômicas: Ex. Test-and-set (tas) • tas <dst>
if dst = 0
then dst = 1
SemáforosP e V
MonitoresPrograma que engloba controla o recurso
compartilhado e que tem acesso restrito
wait: tas lock bmi wait critical section clr.b lock
Indivisível
GRECO
DIUFPE
Aumento de Eficiência: Memória Virtual
Disco
MemóriaOperating System
Long-TermQueue Jobs completos
e User Sessions
Disco
Memória
Operating System
Jobs completose User Sessions
Intermediate Queue
Long-Term Queue
Job Sheduling
Swapping