administração de memória - instituto de informática - ufgeduardo/so/slides/cap-04-adm...

34
1 1 Administração de Memória 4.1 Administração básica de memória 4.2 Swapping 4.3 Memória Virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelando algoritmos de substituição de páginas 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos de implementação 4.8 Segmentação 2 Administração de Memória Idealmente, programadores querem memória que seja Grande Rápida Não volátil Hierarquia Cache Memória principla Disco Fita O administrador de memória cuida da hierarquia!

Upload: nguyendan

Post on 28-Jan-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

1

1

Administração de Memória

4.1 Administração básica de memória4.2 Swapping4.3 Memória Virtual4.4 Algoritmos de substituição de páginas4.5 Modelando algoritmos de substituição de páginas4.6 Tópicos de projeto para sistemas de paginação4.7 Tópicos de implementação4.8 Segmentação

2

Administração de Memória

Idealmente, programadores querem memória queseja

GrandeRápidaNão volátil

HierarquiaCacheMemória principlaDiscoFita

O administrador de memória cuida da hierarquia!

Page 2: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

2

3

Administração Básica de MemóriaMonoprogramação sem Swapping ou Paginação

- SO com um processo de usuário

4

Multiprogramação com Partições Fixas

Page 3: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

3

5

Modelando Multiprogamação

Utilização da CPU = 1 – pn

Utilização da CPU em função do número de processos namemória

Degree of multiprogramming

6

Análise da porformance de sistemasMultiprogramados

Page 4: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

4

7

Relocação e Proteção

Não se pode saber com certeza onde o programaserá carregado na memória

Endereços de locação de variáveis e rotinas de código nãopodem ser absolutosDeve manter um programa fora das partições de outrosprogramas

Usar valores de “base” e “limite”Posições de endereços adicionadas ao valor base paramapear para o endereço físicoPosições maiores que o valor limite são erradas

8

Swapping (1)

Alocação de memória muda quando processos:Entram na memóriaSaem da memória

Regiões sombreadas são memória não usadas

Page 5: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

5

9

Swapping (2)

Alocando espaço para um segmento de dados crescenteAlocando espaço para segmentos de pilha e dados crescentes

10

Administração de Memória com Bit Maps

Parte de memória com 5 processos, 3 buracos

Tmarcas indicam unidades de alocaçãoRegiões sombreadas estão livres

bit mapMesma informação em uma lista

Page 6: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

6

11

Administração de Memória com Listas ligadas

Quatro situações para o fim do processo X

12

Memoria Virtual Paginação (1)

Posição e Função da MMU

Page 7: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

7

13

Paginação (2)

Relação entreendereços virtuaise endereços físicosdados pela tabelade páginas

14

Tabelas de Páginas (1)

Operação interna da MMU com 16 - 4 KB paginas

Page 8: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

8

15

Tabelas de Páginas (2)

Endereço de 32 bits co 2 campos de tabelas de páginasTabela de páginas em 2 níveis

Second-level page tables

Top-level page table

16

Tabelas de Páginas(3)

Estranda Típica de tabela de páginas

Page 9: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

9

17

TLBs – Translation Lookaside Buffers(Memória associativa)

Uma TLB para acelerar a paginação

18

Tabelas de Páginas Invertidas

Comparaçao entra uma tabela de páginas tradicional com uma tabela de páginas invertida

Page 10: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

10

19

Algoritmos de Substituição de Páginas

Page fault força escolhaQual página deve ser removida para cederespaço para a página que chega

Páginas modificadas devem ser salvasNão modificadas apenas sobrescritas

Melhor não usar uma página usadafrequentemente

20

Algoritmo Ótimo

Trocar a página que será necessária no futuro mais distante

Ótima mas impossível…

Estimativa por …logging das páginas usadas em rexecuçõesanteriores do processo… não é prático…

Page 11: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

11

21

Algorítmo Not Recently Used

Cada página tem um bit de referência(R) e um de modificado (M)

Os bis são setados quando a página émodificada ou referenciada

Classificação Das páginas1. não referenciada, não modified2. não referenciada, modificada3. referenciada, não modificada4. referenciada, modificadaNRU remove páginas aleatoriamente

A partir das classes mais baixasnumerações

22

FIFO

Mantém uma lista ligada de todas as páginasNa ordem em que foram carregadas

A página no início da lista é substituida

DesvantagemUma página carregada a muito tempo pode ser usadafrequentemente

Page 12: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

12

23

Segunda Chance

Operação da segunda chanceAs páginas são classificas por FIFOLista de págins se falta ocorre no tempo 20, A tem Rbit ligado (números acima das páginas são tempos de carga)

24

Relógio

Page 13: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

13

25

Least Recently Used (LRU)Assume que páginas usadas recentemente serãouadas novamente em breve

Discarta a página não usda por mais tempo

Deve manter uma lista ligada de todas as páginasUsadas maia recentemente na frente, menos usdas no fundoAtualiza esta lista a cada referência à memória !!

Alternativamente, mantem um contador em cadaentrada de página

Escolhe a página com o menor contgadorPeriodicamente zera o contador

26

Simulando LRU em Software (1)

LRU usando uma matriz – referências àspáginas na ordem 0,1,2,3,2,1,0,3,2,3

Page 14: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

14

27

Simulando LRU em Software (2)

O algoritmo do envelhecimento simulaLRU em softwareNote 6 páginas para 5 ticks do relógio, (a) – (e)

28

Algoritmo do conjunto de trabalho (Working Set) (1)

O Conjunto de Trabalho é o conjunto de páginasusadas pelas k mais recentes referências à memóriaw(k,t) é o tamanho do conjunto de trabalho no instante, t

Page 15: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

15

29

Algoritmo do conjunto de trabalho (Working Set)(2)

30

Relógio do Conjunto de Trabalho (WSClock)

Page 16: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

16

31

Revisão dos Algoritmos de Substituição de Páginas

32

Modelando Algoritmos de susbtituição de Páginas – Anomalia de Belady

FIFO com 3 molduras de páginasP's mostram qual referência de página provocauma falta de página

Page 17: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

17

33

Modelando Algoritmos de susbtituição de Páginas – Anomalia de Belady

FIFO com 4 molduras de páginasP's mostram qual referência de página provocauma falta de página

34

Modelando Algoritmos de susbtituição de Páginas –Anomalia de Belady

FIFO com 3 molduras de páginasFIFO com 4 molduras de páginasP's mostram qual referência de página provoca uma faltade página

Page 18: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

18

35

Algoritmos de Pilha

Estado da Memória (M), após cada item da string de referência ser processado

7 4 6 5

36

A String de Distância

Funções de Densidade de Probabilidade para duas Strings de

Distância Hipotéticas

Page 19: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

19

37

A String de Distância

Computação da taxa de falte de páginas pelastring de distância

vetor C vetor F

38

Tópicos de Projeto para Sistemas de PaginaçãoPolíticas de Alocação Global vs Alocação Local (1)

Configuração Original Substituição de páginaLocalSubstituição de páginaGlobal

Page 20: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

20

39

Políticas de Alocação Global vs Alocação Local (2)

Taxa de Faltas de Páginas como umafunção do número de molduras

atribuidas

40

Fim

Apresentar a definição do trabalho de OSP do módulo memória

Page 21: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

21

41

Próxima aula

42

Tabelas de Páginas Invertidas

Comparaçao entra uma tabela de páginas tradicional com uma tabela de páginas invertida --- Usasdas em arquiteturas de 64 bits

Page 22: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

22

43

Controle de Carga

Apesar de bons projetos, os sistemas aindapodem entrar em thrashing

Quando a Frequência de Faltas de Páginaindica:

Alguns processos precisam de maismemóriaNenhum processo precisa de menosmemória

Solução?

44

Tamanho de Página (1)

PequenoVantagens

Desvantagem

Page 23: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

23

45

Tamanho de Página(2)

Overhead devido à fragmentaçãointerna e tabela de página

Ondes = tamanho médio do processo em bytesp = tamanho da página em bytese = entrada de página

2s e poverheadp⋅

= +

page table space

internal fragmentation

Optimized when

2p se=

46

Separar espaços de instruções e Dados

Um espaço de endereçamentoEspaços separados para I e D

Page 24: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

24

47

Páginas Compartilhadas

48

Política de LimpezaRequerida para um processo em background process, daemon de paginação

Periodicamente inspeciona a memóriaQuando poucas molduras estão livres

Seleciona uma página para ser descartadaPode usar mesmo algoritmo(clock)

Como o algoritmos regular de troca de páginas mas com parâmetros diferentes

Page 25: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

25

49

Tópicos de ImplementaçãoEnvolvimento do So com Paginação1. Criação do processo

− Determina tamanho do programa− Cria a tabela de páginas

2. Execução do processoMMU iniciada para o novo processo− TLB flushed

3. Momento da falta de página− Determina endereço virtual causando a falta− swap página alvo fora e requerida para dentro

4. Termino do processo− Libera tabela de páginas e páginas

50

Administração de Falta de páginas (1)

1. Hardware traps para kernel2. Registradores gerasi salvos3. SO determina qual página virtual é requerida4. SO checa validade do endereço, busca a moldura

de página5. Se moldura selecionada estiver suja, escreve-a

em disco

Page 26: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

26

51

Administração de Falta de páginas (2)

6. SO traz página nova do disco7. As tabelas de páginas são atualizadas

Instrução que provocou a falta volta para seuinício

8. Processo de falta restaurado9. Registradores restaurados

Programa continua

52

Backup de Instrução

Uma instrução provocando uma faltade página

Page 27: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

27

53

Travando páginas em memóriaMemória virtual e ES interagemocasionalmenteProcesso faz uma chamada para umaleitura de um dispositivo em um buffer

Enquanto espera por ES, outro processo iniciaOcorre uma falta de páginaO buffer do primeiro processo pode ser escolhidopara page-out

É necessário especificar algumas páginas“travadas”(locked)

54

Backing Store

(a) Paginação para área de swap estática(b) Backing up páginas dinamicamente

Page 28: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

28

55

Separação de Política e Mecanismo

Administração de falta de página com um paginadorexterno

56

Segmentação (1)

Espaço de endereçamnto uni-dimensional com tabelascrescentesUma tabela pode invadir a outra

Page 29: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

29

57

Segmentação (2)

Permite cada tabela crescer/encolherindependentemente

58

Segmentação (3)

Comparação entre paginação e segmentação

Page 30: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

30

59

Implementação de segmentação pura

(a)-(d) desenvolvimento de “xadrez”(e) Remoção por compactação

60

Segmentação com paginação: MULTICS (1)

Segmento descritor aponta para tabelas de páginasSegmento descritor – números são comprimentos dos campos

Page 31: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

31

61

Segmentação com paginação : MULTICS (2)

Um endereço virtual MULTICS de 34-bit

62

Segmentação com paginação : MULTICS (3)

Conversão de um endereço de duas partes em um endereçode memória

Page 32: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

32

63

Segmentação com paginação: MULTICS (4)

Versão simplificada da MULTICS TLBExistencia de 2 tamanhos de páginas faz a TLB maiscomplicada

64

Segmentação com paginação: Pentium (1)

Um seletor Pentium

Page 33: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

33

65

Segmentação com paginação: Pentium (2)

Descritor de segmento de códigodo PentiumSegmentos de dados diferentes(ligeiramente)

66

Segmentação com paginação: Pentium (3)

Conversão de (selector, offset) para endereçolinear

Page 34: Administração de Memória - Instituto de Informática - UFGeduardo/so/slides/cap-04-adm Memoria.pdf · 2012-05-15 · 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos

34

67

Segmentação com paginação: Pentium (4)

Mapeamento do endereço linear em endereçofísico

68

Segmentação com paginação: Pentium (5)

Proteção no Pentium

Level