Suporte ao SO (Atualizado: 07/06/2010)

Propaganda
Arquitetura e Organização
de Computadores
Suporte do Sistema Operacional
Material adaptado, atualizado e traduzido de:
STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição
Objetivos e Funções
Conveniência
Torna o computador fácil de usar
Eficiência
Permite melhor uso dos recursos do computador
Camadas e Visões de um
Sistemas de Computador
Serviços do Sistema
Operacional
Criação de Programas
Execução de Programas
Acesso aos Dispositivos de E/S
Controle de Acesso a Arquivos
Acesso ao Sistema
Detecção e Resposta a Erros
Contabilidade
Coleta e monitoramento de dados de desempenho
SO como um Gerenciador de
Recursos
Tipos de Sistemas
Operacionais
Interativo
Lote
Uniprogramação
Multiprogramação (Multi-tarefa)
Sistemas Antigos
Final da década de 40 até meados da década de
50
Não havia Sistema Operacional
Programas interagiam diretamente com o
hardware
Dois problemas principais:
Escalonamento
Tempo de preparação
Sistemas em Lote Simples
Processadores muito caros = importancia em
valorizar o tempo de uso
Programa Monitor Residente
Usuários submetem suas tarefas (jobs) ao
operador
Operador trabalha com lotes
Monitor controla a sequência de eventos para o
processamento em lote
Sistemas em Lote Simples
Quando um job é encerrado, controle retorna ao
monitor que lê o próximo job
Monitor controla o escalonamento, resolvendo
assim o problema de ociosidade nos
escalonamentos
Linguagem de Controle de Job
Fornece instruções ao monitor
Normalmente representada por $. Ex:
$JOB
$FTN
... } Instruções em FORTRAN
$LOAD
$RUN
... } Dados
$END
Recursos de Hardware
Desejados em um SO em lote
 Proteção de Memória
Não permite troca de memória enquanto programa do usuário
está executando
Protege o monitor
 Temporizador
Previne que um job monopolize o sistema
 Instruções Privilegiadas
Executadas apenas pelo Monitor.
Ex: E/S
 Interrupções
Permite abandonar e recuperar o controle de processos
Sistema em Lote Multiprogramados
Dispositivos de E/S são muito lentos
Quando um programa está esperando por E/S,
outro pode usar a CPU
Também necessita de recursos de hardware,
entre eles o principal é o suporte a interupções
de E/S e DMA
Único Programa - Uniprogramação
Multiprogramação com dois
programas
Multiprogramação com três
programas
Sistemas de Tempo
Compartilhado
Permite aos usuários interagir diretamente com
o computador
Ex: Interação
Multiprogramação permite que um número N de
usuários interajam com o computador
Exercícios
1.
2.
3.
4.
Quais são os objetivos e funções de um SO?
Cite e comente 4 serviços oferecidos pelo SO?
Cite e comente sobre os tipos de SO?
Diferencie SO de lote multiprogramado e SO de
tempo compartilhado.
Escalonamento
Chave para multiprogramação
Tipos
Longo prazo
Médio prazo
Curto prazo
E/S
Escalonamento de Longo Prazo
Determina quais programas serão submetidos
ao processamento
Controla o grau de multiprogramação
Uma vez submetido, o job se torna um processo
é é acrescentado a fila do escalonador de curto
prazo
(ou torna-se um job na área de troca (swap),
onde será escalonado posteriormente pelo
escalonador de médio prazo)
Escalonamento de Médio Prazo
Faz parte da função de troca de processos
(swapping)
Normalmente são baseados na necessidade de
gerenciar o grau de multiprogramação
Se não há memória virtual, gerenciamento de
memória também será um problema
Escalonamento de Curto Prazo
Também conhecido como Dispatcher
(despachante)
Toma decisões de qual tarefa executar em
seguida, ou seja, qual trabalho irá utilizar o
processador no próximo intervalo de tempo
Estados de um Processo
Bloco de Controle de um Processo
Identificador
Estado
Prioridade
Contador de Programa
Ponteiros de Memória
Dados de Contexto
Status de E/S
Informações contábeis
Principais Elementos de um SO
para Multiprogramação
Escalonamento de Processos
Gerenciamento de Memória
Uniprogramação
Memória dividida em duas
Uma para o Sistema Operacional (monitor residente)
Uma para o programa em execução
Multiprogramação
“Parte do Usuário” é sub-dividida e compartilhada
entre os vários processos ativos
Troca de Processos na
Memória - Swapping
Problema: E/S é tão lenta comparada com a
CPU que, mesmo no sistema de
multiprogramação a CPU pode ficar ociosa a
maior parte do tempo
Soluções:
Aumentar a memória principal
Cara
Conduz a programas com maior consumo de memória
Swapping
O que é Swapping?
Fila de processos de longo prazo armazenados
em disco
Processos trocados (swapped) tornam seu
espaço disponível
Quando um processo termina, ele é retirado da
memória principal
O que é Swapping?
Se nenhum dos processos na memória está
pronto (ex: todos estão aguardando E/S)
Troca o processo bloqueado por um processo de
uma lista intermediária
Troca por um processo pronto ou por um novo
processo
Mas… swapping é uma operação de E/S...
O que é Swapping?
Particionamento
Divisão da memória em seções para alocar
processos (incluindo o Sistema Operacional)
Partições de tamanho fixo
Podem não ser do mesmo tamanho
Processo é armazenado dentro da menor partição
possível
Desperdício de memória
Leva a partições de tamanho variável
Particionamento
Fixo
Partições de tamanho Variável (1)
 Aloca exatamente a quantidade de memória necessária
ao processo
 Isto pode levar a um buraco no final da memória,
pequeno demais para outro processo
Apenas um pequeno orifício - menos resíduos
 Quando todos os processos estão bloqueados, retira um
processo e busca outro (swap)
 Novo processo pode ser menor do que o processo
retirado
 Outro buraco
Partições de tamanho Variável (2)
Com o tempo, surgem vários buracos
(fragmentação) que causam perda de
desempenho
Solução:
Compactação – De tempos em tempos processos são
realocados na memória para retirar os buracos
Problema: Desperdiça tempo da CPU
Efeitos do Particionamento Dinâmico
Realocação
Não garante que processos devem ser
carregados dentro do mesmo local na memória
Instruções contém endereços
Localização dos dados
Endereços para instruções (usados para desvios)
Endereço Lógico – relativo ao início do programa
Endereço Físico – Localização atual na memória
(neste momento)
Conversão automática usando endereço base
Exercícios
1.
2.
3.
4.
Quais os tipos de escalonamento?
Quais são os estados de um processo?
O que é Swapping?
Quais os problemas de utilizar partições de
tamanho fixo?
5. Quais os problemas de utilizar partições de
tamanho variável?
Paginação
Divide a memória em pequenas partições de
tamanhos iguais chamadas frames
Divide programas (processos) em pequenas
partições de tamanhos iguais chamadas páginas
Atribui o número de frames necessários para a
alocação de páginas
Paginação
Sistema Operacional mantém uma lista de
frames livres
Um processo não requer frames contínuos para
suas páginas
Usa tabela de páginas para fazer o controle
Endereços Lógicos e Físicos Paginação
Memória Virtual
 Paginação por Demanda
Não requer todos as páginas de um processo na memória
Traz as páginas quando necessário
 Falta de Página
Requer uma página que não está na memória
Sistema Operacional precisa fazer a troca de páginas
Pode ser necessário trocar uma página para dar espaço a outra
Seleciona a página a ser retirada com base no histórico recente
Thrashing
Muitos processos em pouca memória
Sistema Operacional gasta todo o seu tempo
efetuando trocas de páginas
Pouco ou nenhum trabalho real é feito
Soluções
Bom algoritmo de substituição de páginas
Reduzir o número de processos executando
Adquirir mais memória
Vantagens da Paginação
Não precisamos carregar todo um processo na
memória para que ele funcione
Podemos trocar páginas conforme necessário
Logo, podemos executar os processos que são
maiores do que a memória total disponível!
A memória principal é chamada de memória real
Usuário / programador vê uma memória muito
maior do que a real - memória virtual
Estrutura da Tabela de Páginas
Translation Lookaside Buffer - TLB
Acesso a memória virtual = 2 acessos
Um para buscar entrada da tabela de página
apropriada, outro para buscar dados = Dobro
do tempo de acesso
Cache especial para contornar este problema –
TLB
Translation Lookaside Buffer - TLB
Segmentação
Paginação normalmente não é visível ao
programador
Segmentação é visível ao programador
Normalmente, diferentes segmentos são
alocados para programas e dados
Pode haver uma série de segmentos de
programas e uma série de segmentos de dados
Vantagens da Segmentação
Simplifica o tratamento de estruturas de dados
que crescem
Permite que programas sejam alterados e
recompilados de modo independente, sem exigir
religamentos e recarregamentos
Permite o compartilhamento entre processos
Serve para proteção
Alguns sistemas combinam segmentação com
paginação
Exercícios
1. Explique resumidamente como funciona a
paginação.
2. Explique o que é Thrashing, quando ele ocorre
e qual(is) a(s) solução(ões) para este
problema.
3. Para que serve a TLB?
4. Cite as vantagens da segmentação.
Download