capítulo4 gerenciamento de memória - ufscarregina/recursosso/cap-04-2004.pdf · – quantidade...
TRANSCRIPT
1
Gerenciamento de Memória
Capítulo 4
4.1 Gerenciamento básico de memória4.2 Troca de processos4.3 Memória virtual4.4 Algoritmos de substituição de páginas4.5 Modelagem de algoritmos de substituição de páginas4.6 Questões de projeto para sistemas de paginação4.7 Questões de implementação4.8 Segmentação
2
Dilema do projetista:• Usar tecnologias que provêm memória de
grande capacidade• Atingir metas de desempenho com memórias de
baixa capacidade e tempo de acesso rápido (de alto custo)
Não depender de uma única tecnologia ou componente de memória
Hierarquia de memória
Gerenciamento de Memória
3
Questões relacionadas ‘as restrições de projeto da memória de um computador:– Quanto?– Quão rápida?– Quão cara?
Quanto questão abertaQuão rápida memória tem que acompanhar a
velocidade do processadorQuão cara custo razoável em relação a outros
componentes
Ponderação entre custo, capacidade e tempo de acesso
Gerenciamento de Memória
4
regs
cache
Memória principal
Cache de disco
Disco magnético
Fita magnética
Discos óticos
< Custo/bit
> Capacidade
> T acesso
< Freq acesso
da memória
pela CPU
Hierarquia da memória
Gerenciamento de Memória
5
Qual a chave do sucesso no projeto da memória? Diminuir a freqüência de acesso
Como?Princípio da localidade de referência
Organização dos dados de forma hierárquicade tal forma que a porcentagem de acessos a um nível seja substancialmente menor que a do nível acima da
hierarquiaEx.:
CacheRAMDisco
Gerenciamento de Memória
6
Gerenciamento de Memória
Programas Reais exibem Localidade de Referência
Página de memória
referenciada
tempo
7
Gerenciamento de Memória• Idealmente, o que todo programador deseja é dispor de
uma memória que seja– grande– rápida– não volátil
• Hierarquia de memórias– pequena quantidade de memória rápida, de alto custo - cache– quantidade considerável de memória principal de velocidade
média, custo médio– gigabytes de armazenamento em disco de velocidade e custo
baixos• O gerenciador de memória trata a hierarquia de memórias
8
Gerenciamento Básico de Memória Monoprogramação sem Troca de Processos ou Paginação
Três maneiras simples de organizar a memória- Um sistema operacional e um processo de usuário
1. Usuário digita comando2. S.O. carrega programa solicitado do disco para a memória3. Executa e termina4. S.O. emite prompt e espera próximo comando5. S.O. carrega processo sobre anterior
Monoprogramação→ raramente utilizada
S.O. em RAM
Programa doUsuário
Programa doUsuário
S.O. em ROMDrivers de Dispositivos
em ROM
S.O. em RAM
Programa doUsuário
9
Multiprogramação com Partições Fixas
• Partições fixas de memóriaa) filas de entrada separadas para cada partiçãob) fila única de entrada
Filas múltiplas de entrada (a)
700K
400K
200K
100K
0K
Partição 4
Partição 3
Partição 2
Partição 1
S.O.
Fila única de entrada (b)
Partição 4
Partição 3
Partição 2
Partição 1
S.O.
10
Motivações para multiprogramação:– é mais fácil programar uma aplicação quebrando-a em
dois ou mais processos– mais que um processo na memória melhora o
desempenho para várias pessoas ao mesmo tempo– a maioria dos processos gastam boa fração de seu tempo
esperando a conclusão de operações de eE/S
exemplo: processo fica num loop lendo blocos de dados e executa alguma computação sobre os dados lidos.
40 msec para ler um bloco10 msec para computação
na monoprogramação significacpu ociosa 80% do tempo
Gerenciamento de Memória
11
Gerenciamento de MemóriaModelagem da Multiprogramação
1o. Modelo: • Um processo computa 20% de seu tempo de memória.• Cinco processos na memória, de uma vez à CPU
ocupada 100%• Modelo não realista – não assume que os cinco
processos podem esperar por E/S ao mesmo tempo
2o. Modelo:• Um processo gasta uma fração p de seu tempo em
operações de E/S• Para n processos em memória, a probabilidade de que
todos os processos estejam esperando por E/S (isto é a CPU ociosa) é pⁿ
• Utilização da CPU = 1 - pⁿ
3o. Modelo: Teoria das filas
12
ü80% de tempo de espera para processos interativos é comum
üProcessos em lote com 80% ou mais tempo de espera é comum
Assume que todos os processos são independentes
Processos não são independentes!!!
0
20
40
60
80
100
120
0 1 2 3 4 5 6 7 8 9 10
Número de Processos
Utili
zaçã
o da
CPU
(em
%)
80% E/S50% E/S20% E/S
Gerenciamento de MemóriaModelagem da Multiprogramação
13
Exemplo: – Computador de 1MB– S.O. ocupa 200KB– Cada programa do usuário ocupa 200KB– Espera por E/S: 80%
Utilização da CPU = 1 - pⁿ = 1 – 0,84 = 60%
e se for adicionado 1MB a mais?e se for adicionado um 3o MB?
é um bom investimento?
Gerenciamento de MemóriaModelagem da Multiprogramação
14
Relocação e Proteção (1)• Não se sabe com certeza onde o programa será
carregado na memória– Localizações de endereços de variáveis e de código de
rotinas não podem ser absolutos• Uma possível solução: instruções do programa são
modificadas segundo a partição de memória em que ele será carregado
• Como impedir que um programa de usuário leia e/ou escreva na memória de outro usuário? (endereços de memória são absolutos)
• Solução da IBM: Dividir a memória em blocos de 2K (4 bits de proteção de bloco). PSW contém a chave de 4 bits.
15
• Solução para proteção e relocação: Uso de registradores especiais de hardware (base e limite)– localizações de endereços são somadas ao valor
base antes de serem mapeadas na memória física– localizações de endereços maior que o valor limite
indicam erro• Desvantagem: necessárias uma adição e uma
comparação a cada referência à memória
Relocação e Proteção (2)
16
• Todo endereço na memória gerado automaticamente tem o conteúdo do registrador Base adicionado a ele antes de ser enviado para a memória
• Endereços são checados contra o registrador limite• Hardware protege esses registradores contra acessos
indevidos
Exemplo:
Partição n
Partição 1
S.O. 0
100
200
100
100
Base
Limite (comprimento da partição)
Relocação e Proteção (3)
17
Troca de Processos (1)
• Alterações na alocação de memória à medida que processos entram e saem da memória
• Regiões sombreadas correspondem a regiões de memória não utilizadas naquele instante
• Desvantagem: Memória muito fragmentada. Requer compactação de memória (pouco utilizada => muito processamento)
18
Troca de Processos (2)
a) Alocação de espaço para uma área de dados em expansãob) Alocação de espaço para uma pilha e uma área de dados,
ambos em expansão
Quanto de memória alocar para um processo??
19
Gerenciamento de Memória com Mapas de Bits (1)
a) Parte da memória com 5 segmentos de processos e 3 segmentos de memória livre
− pequenos riscos simétricos denotam as unidades de alocação − regiões sombreadas denotam segmentos livres
b) Mapa de bits correspondente
Mapa de bits– Memória é dividida em unidades de alocação– Um bit corresponde a uma unidade de
alocação (0 se livre e 1 se ocupada)– Como trazer um processo com K unidades
para a memória?
(a)
(b)
20
• Gerenciamento de memória com mapas de bits– Qual deve ser o tamanho da unidade de
alocação? (grande x pequeno)• Vantagem do mapa de bits
– Forma simples de gerenciamento (o tamanho do mapa de bits depende do tamanho da memória e do tamanho da unidade de alocação)
• Desvantagem do mapa de bits– Busca é lenta quando se precisa de um número
consecutivo de bits vazios (para acomodar um processo de k unidades)
Gerenciamento de Memória com Mapas de Bits (2)
21
Gerenciamento de Memória com Lista Encadeada (1)
• Gerenciamento de Memória com Lista Encadeada– Lista de segmentos (Processo-P, Vazio-H, endereço de
início, comprimento, ponteiro para próximo)