31
Gestão de Memória 1. Conceitos Básicos 2. Swapping 3. Memória Virtual 4. Algoritmos de substituição de páginas 5. Modelação de algoritmos de substituição de páginas 6. Questões no desenho de sistemas de paginação 7. Questões na implementação 8. Segmentação

Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

  • Upload
    ngocong

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

Gestão de Memória

1. Conceitos Básicos2. Swapping3. Memória Virtual4. Algoritmos de substituição de páginas5. Modelação de algoritmos de substituição de páginas6. Questões no desenho de sistemas de paginação7. Questões na implementação8. Segmentação

Page 2: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 2

Organização de um Sistema Operativo

System Call Handler

File System 1 ... File System m

Virtual memory

Driver 1 Driver 2 ... Driver n

Threads, thread scheduling, thread synchronization

Interrupt handling, context switching, MMU

Hide the low-level hardware

Page 3: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 3

GestãoGestão de de MemóriaMemória

Idealmente, programadores querem memória– Rápida– Grande– Não volátil

Hierarquia de tipos de memória– Cache - Pequena porção de memória rápida e cara – Memória principal - Média velocidade, médio preço – Armazenamento em disco – gigabytes de memória lenta e barata

Gestor de memória gere a hierarquia de memórias.

Objectivos do capítulo: investigar as diferentes tipos de gestão de memóriaObjectivos do capítulo: investigar as diferentes tipos de gestão de memória

Page 4: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 4

Gestão de MemóriaMonoprogramação sem swapping nem paging

0xFF..0xFF..

Três modos simples de organizar memória - um sistema operativo com um processo de um utilizador

Mainframes; Minicomputers

Mainframes; Minicomputers

Palmtops; embeddedsystems

Palmtops; embeddedsystems

Modelo inicial dos PC’scom MSDOS (BIOS)

Modelo inicial dos PC’scom MSDOS (BIOS)

SO na RAM

Programa de

utilizador

SO na ROM

Programa de

utilizadorSO na RAM

0xFF..Drivers em ROM

Programa de

utilizador

0 0 0

Page 5: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 5

Gestão de MemóriaMultiprogramação com partições fixas

800 K 800 K

Partições fixas de memória– Filas de entrada separadas para

cada partição– Uma única fila de entrada

Sistema Operativo

Partição 1

Partição 2

Partição 3

Partição 4800 K700 K

400 K

100 K

200 K

Sistema Operativo

Partição 1

Partição 2

Partição 4

Partição 3

800 K700 K

400 K

200 K

100 K

Desvantagem:– Pode ser posto numa queue pequena

demais– Uma queue pode estar cheia, com

partições livres

Page 6: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 6

Gestão de MemóriaProblemas que se colocam : Re-alocação e Protecção

Não pode ter a certeza onde é que o programa vai ser carregado em memória (Re-alocação)– O endereço de memória das variáveis e rotinas de código não pode

ser absoluto– Tem que se menter o programa fora da partição de outros processos

Usar os valores base e limite (Proteccção)– Endereços são mapeados, usando um valor base, por forma a

mapear endereços físicos– Endereços superiores ao limite físico estão errados– Sempre que o processo é escolhido para correr, base e limite

também são carregados

Page 7: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 7

SwappingSwappingTempo

Batch Systems:

-batch é carregado em memória

-Fica em memória até terminar

-Precisa de espaço em memória para suportar processo e manter CPU ocupado.

Batch Systems:

-batch é carregado em memória

-Fica em memória até terminar

-Precisa de espaço em memória para suportar processo e manter CPU ocupado.

Sistemas interactivos:

- usam time sharing

- processos em excesso têm de ser gravados em disco

Sistemas interactivos:

- usam time sharing

- processos em excesso têm de ser gravados em disco

Sistema Operativo

A

Sistema Operativo

Sistema Operativo

Sistema Operativo

Sistema Operativo

Sistema Operativo

Sistema Operativo

B

A A

B

C

B

C C

B

D D

C C

A

D

Page 8: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 8

Swapping

Alocação de memória muda com a entrada e saída de processos de memória

Duas estratégias– Swapping – programa todo em memória. Carregado de

disco para memória

– Virtual Memory – Só parte do programa é carregado para memória

Page 9: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 9

SwappingExemplo com segmentos

Alocação de espaço para segmentos que podem crescerAlocação de espaço para segmentos de stack e data

Sistema Operativo

Espaço livre

Espaço livre

Sistema Operativo

A

B

B stack

B data

B code

Espaço livre

Em uso

A stack

A data

A code

Espaço livre

Em uso

Page 10: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 10

SwappingGestão de memória com bit Maps

Exemplo de parte de memória com 5 processos e 3 espaços livre.Exemplos de gestão com bit Maps e com Listas.

Page 11: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 11

SwappingGestão de memória com listas ligadas

Antes de X terminar Depois de X terminar(a) torna-seA X B A B

(b) torna-seA X A

Listas ligadas: ligação dupla ou simples?Algoritmos de busca: First-Fit, Next-Fit, Best-Fit,Worst-Fit,Quick-Fit

(c) torna-seX B B

(d) torna-seX

Page 12: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 12

Memória VirtualMemória Virtual

Memória física é limitadaProgramas necessitam de mais memóriaSolução a nível da aplicação: divisão do programa em blocos distintosProgramador tinha de retirar e carregar em memória os blocos (o SO não intervinha)

Como simular a existência de mais memória do que a que existe realmente?

Page 13: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 13

Memória VirtualPaginação

CPU envia endereço virtual para MMU

Posição e função da MMU

Memória Control. Discos

CPU

MemoryManagement

Unit Barramento

Page 14: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 14

Memória VirtualPaginação

A relação entre endereços virtuais e endereços físicos( Page Table )

Page 15: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 15

Memória VirtualTabela de Páginas Simples

Operações Internas da MMU com 16 páginas de 4KB

Page 16: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 16

Memória VirtualTabelas de Páginas de vários níveis

Endereços a 32 bits

Page Tables de dois níveis

Page 17: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 17

Memória VirtualEstrutura de uma Page Table

Cache inibido Modificado Presente/Não Presente

Page frame number

Referênciado Protegido

Page table entry

Page 18: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 18

Memória VirtualTLBs – Translation Lookaside Buffers

Acelera o paging75RW1861114RW1860145R X021150R X019162RW1129129RW1130138R X020131RW11401

Page frameProtectionModifiedVirtual pageValid

Page 19: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 19

Memória VirtualPage Tables Invertidas

– Comparação de uma page table tradicional com uma page tableinvertida

Page 20: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 20

Algoritmos de substituição de páginasAlgoritmos de substituição de páginas

Falhas de páginas (page fault) força a uma escolha– Que página deve ser removida– Arranja espaço para uma nova página

Páginas modificadas devem ser salvas– Não modificadas sobrepor

Não se deve escolher uma página usada com frequência– Voltará a ser reposta brevemente

Page 21: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 21

Algoritmo Óptimo de substituição de páginas

Substituir página necessária o mais tarde possível

– Óptimo, mas não realista

Estimar ...

– Fazendo registo das páginas usadas na última vez que o

processo correu

– Óptimo, mas impraticável.

Page 22: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 22

Algoritmo de substituição de páginas Not Recently Used (NRU)

Cada página tem: Reference Bit, Modified Bit– Bits são alterados quando a página é referenciada, modificada

Páginas são classificadas– Classe 0: Not referenced, not modified– Classe 1: Not referenced, modified– Classe 2: referenced, not modified– Classe 3: referenced, modified

NRU remove página, aleatoriamente, da classe mais baixa não vazia.

Page 23: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 23

Algoritmo de substituição de páginas - FIFO

Mantém uma lista ligada de todas as páginas

– Pela ordem em que chegam à memória

Páginas no inicio da lista são substituídas

– Página à cabeça é a que está à mais tempo em memória

– Página na cauda é a mais recente

Desvantagem

– Não tem em conta se a página é ou não muito utilizada

Page 24: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 24

Algoritmo de substituição de páginas “Second Chance”

Página carregada

mais recentemente

0 3 7 8 12 14 15 18Primeira página

carregadaA HB C D E F G

Operações do algoritmo– Páginas ordenadas em FIFO– Lista se a falha ocorre no instante 20, A tem o bit R activado

AC D E F G HA é tratada como uma

página carregada

recentemente

3 7 8 12 14 15 18 20Tempo em que foram carregadas B

Page 25: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 25

Algoritmo de substituição de páginas “The Clock”

AL B

K Quando ocorre uma falha de página, a página para a qual o ponteiro aponta é inspeccionada.

A acção a tomar depende do bit R:

-R=0: Remover a página e avançar ponteiro

-R=1: Limpar R e avançar ponteiro

Quando ocorre uma falha de página, a página para a qual o ponteiro aponta é inspeccionada.

A acção a tomar depende do bit R:

-R=0: Remover a página e avançar ponteiro

-R=1: Limpar R e avançar ponteiro

C

J D

I E

H FG

Page 26: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 26

Last Recently Used (LRU)

Assume que as páginas usadas recentemente voltarão a ser usadas em breve– Deitar fora as páginas não usadas à muito tempo

Tem de manter uma lista ligada de páginas– Mais recentemente usados à cabeça, menos à cauda– Actualizar a lista cada vez que a memória é referenciada

Como opção, manter um contador em cada entrada page table– Escolher a página com o menor valor do contador– Periodicamente fazer reset ao contador (colocar a 0)

Page 27: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 27

Algoritmo baseado em hardware-Aging

0 1 1 100 1 2 3

Página

0 0 1 10 1 2 3

Página

0 0 0 10 1 2 3

Página

0 0 0 00 1 2 3

Página

0 0 0 00 1 2 3

Página

0 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 010 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 120 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 03

(a) (b) (c) (d) (e)

0 0 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 1 0 01 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 01 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 01 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0

(f) (g) (h) (i) (j)

LRU usando matrizes – páginas referenciadas por ordem: 0,1,2,3,2,1,0,3,2,3

Page 28: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 28

Algoritmo em Software - AGING

– Notar que existem 6 páginas para 5 ticks de clock

1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0

10000000

00000000

10000000

00000000

10000000

10000000

11000000

10000000

01000000

00000000

11000000

01000000

11100000

11000000

00100000

10000000

01100000

10100000

11110000

01100000

00100000

01000000

10110000

01010000

Bits R para páginas 0-5

em t3

Bits R para páginas 0-5

em t2

Bits R para páginas 0-5

em t1

Bits R para páginas 0-5

em t0

Bits R para páginas 0-5

em t4

Página

011110000

1 10110000

2 10001000

3 00100000

4 01011000

5 00101000

Page 29: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 29

Algoritmo de substituição de páginas Working Set

Page 30: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 30

Algoritmo de substituição de páginas “WSClock”

Page 31: Gestão de Memória - ltodi.est.ips.ptltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A07.pdf · – Uma única fila de entrada. Sistema Operativo Partição 1 Partição 2 Partição

12/16/2002 Sistemas Operativos 2001/2002 31

Algoritmo de substituição de páginas - Resumo

Boa eficiênciaWSClockDificil de implementarWorking SetEficiente que se aproxima do LRUAgingFraca aproximação do LRULFUExcelente, dificil de implementarLRURealistaClockMelhorias ao FIFOSegunda hipotese

Pode retirar páginas importantesFIFOPouco eficienteNRUNão é possivel (referência)ÓptimoComentárioAlgoritmo