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

Post on 28-Jan-2019

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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!

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

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

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

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

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

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

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

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

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…

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

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

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

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

15

29

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

30

Relógio do Conjunto de Trabalho (WSClock)

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

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

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

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

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

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

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

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

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

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

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

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

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

29

57

Segmentação (2)

Permite cada tabela crescer/encolherindependentemente

58

Segmentação (3)

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

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

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

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

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

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

top related