capítulo4 gerenciamento de memória - ufscarregina/recursosso/cap-04-2004.pdf · – quantidade...

22
1 Gerenciamento de Memória Capítulo 4 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição de páginas 4.6 Questões de projeto para sistemas de paginação 4.7 Questões de implementação 4.8 Segmentação

Upload: hakiet

Post on 15-Oct-2018

214 views

Category:

Documents


0 download

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)

22

Quatro combinações de vizinhança para o processo X em término de execução

Antes do Processo X terminar Depois de X terminar

Gerenciamento de Memória com Lista Encadeada (2)