Вы находитесь на странице: 1из 109

SISTEMAS OPERACIONAIS

Gerenciamento de Memria

CONTEDO
Consideraes Iniciais Gerenciamento de Memria
Memria Virtual Consideraes Finais
2

CONTEDO
Consideraes Iniciais Gerenciamento de Memria
Memria Virtual Consideraes Finais
3

CONSIDERAES INICIAIS

Memria - recurso muito importante; Tendncia atual do software

Lei de Parkinson: Os programas se expandem para preencher a memria disponvel para eles (adaptao);

Requisitos:

Muito grande; Rpida; No voltil; Baixo custo.


4

CONSIDERAES INICIAIS

Hierarquia de Memria:

organizao visando a velocidade e capacidade

(vrios sub-nveis RAM esttica) Memria Principal (RAM dinmica) Memria Secundria (disco magntico)
Cache

CONSIDERAES INICIAIS

Hierarquia de Memria:
Cache

(vrios sub-nveis RAM esttica)

quantidade k bytes Alto custo por byte Muito rpida Voltil


Pequena

Memria

Principal (RAM dinmica) Memria Secundria (disco magntico)


6

CONSIDERAES INICIAIS

Hierarquia de Memria:
(vrios sub-nveis RAM esttica) Memria Principal (RAM dinmica)
Cache

intermediria M bytes Custo mdio por byte Velocidade mdia Voltil


Quantidade

Memria

Secundria (disco magntico)


7

CONSIDERAES INICIAIS

Hierarquia de Memria:
(vrios sub-nveis RAM esttica) Memria Principal (RAM dinmica) Memria Secundria (disco magntico)
Cache

quantidade G bytes Baixo custo por byte Lenta No voltil


Grande
8

CONSIDERAES INICIAIS

Hierarquia de Memria:
Para

cada tipo de memria:

gerenciar

espaos livres/ocupados alocar processos/dados na memria localizar dado


Entre

os nveis de memria:
trocas
9

gerenciar

CONSIDERAES INICIAIS

Gerenciador de Memria
Responsvel Alocao Troca Tratamento

por todas as tarefas

de conflitos

10

CONTEDO

Consideraes Iniciais Gerenciamento de Memria Memria Virtual Consideraes Finais


11

GERENCIAMENTO DE MEMRIA

Gerenciador de memria - responsvel por:


alocar

e liberar espaos na memria para os processos em execuo; o chaveamento entre:


gerenciar

memria principal e memria secundria (disco); memria principal e memria cache;

preveno
Proteo

e tratamento de conflitos
espao de memria.

12

GERENCIAMENTO DE MEMRIA

Tipos bsicos de gerenciamento:


Com

paginao (chaveamento):

movimentao

de processos entre a memria principal e a memria secundria (disco); artifcio para resolver a falta de memria; se memria principal suficiente no h necessidade de paginao;
Sem

paginao: no h chaveamento;

13

GERENCIAMENTO DE MEMRIA

Monoprogramao:
sem

paginao: gerenciamento mais simples; apenas um processo na memria;


0xFFF...

S.O.

ROM

DRIVERS

ROM

USURIO RAM

USURIO

RAM USURIO
S.O.
0 Grande porte Sem Uso Computadores de mo Sistemas embarcados

RAM

S.O.
MS-Dos BIOS

14

GERENCIAMENTO DE MEMRIA

Modelo de Multiprogramao:
mltiplos

processos sendo executados; maximizar eficincia da CPU;

Processo

Memria Principal - RAM


15

GERENCIAMENTO DE MEMRIA

Grau de Multiprogramao
16

GERENCIAMENTO DE MEMRIA

Multiprogramao:
vrios

processos na memria: como proteger os processos uns dos outros? e kernel de todos os processos? como tratar a realocao?

Todas as solues envolvem equipar a CPU com um hardware especial:

MMU (memory management unit);


17

GERENCIAMENTO DE MEMRIA

Realocao:

Quando um programa montado (link), i.e. programa principal + rotinas do usurio + rotinas da biblioteca executvel, o montador (linker) deve saber em que endereo o programa ir iniciar na memria;
Nesse caso, para que o montador no escreva em um local indevido (por exemplo na rea do SO - 100 primeiros endereos no CPM), preciso de realocao:

#100 + que depende da partio!!!

18

GERENCIAMENTO DE MEMRIA

Proteo:

Com vrias parties e programas ocupando diferentes espaos da memria possvel acontecer um acesso indevido;
2 registradores base e limite

Soluo para ambos os problemas:

Quando um processo escalonado o registrador-base carregado com o endereo de incio da partio e o registradorlimite com o tamanho da partio;

O registrador-base torna impossvel a um processo uma remisso a qualquer parte de memria abaixo de si mesmo.

19

GERENCIAMENTO DE MEMRIA
2

registradores base e limite


a MMU adiciona o contedo do registrador-base a cada endereo de memria gerado; so comparados com o registrador-limite para prevenir acessos indevidos;

automaticamente,

endereos

20

GERENCIAMENTO DE MEMRIA REGISTRADORES BASE E LIMITE

21

GERENCIAMENTO DE MEMRIA ALOCANDO MEMRIA

a) segmento de dados; b) segmento de dados e de pilha;

22

GERENCIAMENTO DE MEMRIA

Parties:
diviso da memria pode ser realizada de duas maneiras:

parties fixas; parties variveis; tamanho e nmero de parties so fixos (estticos); parties fixas tendem a desperdiar memria - espao no utilizado literalmente perdido; mais simples;
23

Parties Fixas:

GERENCIAMENTO DE MEMRIA

Parties Fixas:
Filas

mltiplas:
filas no balanceadas;

problema:

Fila

nica:

melhor

utilizao da memria; procura melhor processo para a partio considerada; problema: processos menores so prejudicados;

24

GERENCIAMENTO DE MEMRIA

Diviso da Memria em Parties Fixas:

Filas Mltiplas
partio 4 partio 3 400 k partio 2 partio 1 S.O. 200 k 100 k 0

700 k

partio 4

Fila nica
...

partio 3

partio 2
partio 1 S.O. (b)
25

(a)

GERENCIAMENTO DE MEMRIA

Parties Fixas - fragmentao:

Interna: desperdcio dentro da rea alocada para um processo;

Ex.: processo de tamanho 40K ocupando partio de 50k;

Externa: desperdcio fora da rea alocada para um processo;


Duas parties livres: PL1 com 25k e PL2 com 100k, e um processo de tamanho 110K para ser executado; Livre: 125K, mas o processo no pode ser executado;

26

GERENCIAMENTO DE MEMRIA

Parties Variveis:
tamanho

e nmero de parties variam; otimiza a utilizao da memria; complica a alocao e liberao da memria; parties so alocadas dinamicamente; SO mantm lista com os espaos livres; menor fragmentao interna e grande fragmentao externa;
Soluo:

compactao;
27

GERENCIAMENTO DE MEMRIA

Parties Variveis:

Tempo

C B A SO (a) A SO (b) B A

C B

C B

C A

D SO (c) SO (d) SO (e)

D SO (f)

D SO (g)
28

Memria livre

GERENCIAMENTO DE MEMRIA

Minimizar espao de memria inutilizados:


compactao:

necessria para recuperar os espaos perdidos por fragmentao; no entanto, muito custosa para a CPU;

Tcnicas para alocao dinmica de memria:


bitmaps; listas

encadeadas;
29

GERENCIAMENTO DE MEMRIA

Tcnica com bitmaps:


Memria organizada em unidades de alocao em kbytes; Cada unidade corresponde a um bit no bitmap: 0 livre 1 ocupado Tamanho do bitmap depende do tamanho da unidade e do tamanho da memria; Ex.:
unidades de alocao pequenas bitmap grande; unidades de alocao grandes perda de espao;

30

GERENCIAMENTO DE MEMRIA

Tcnica com Bitmaps:


8

Memria

16 C

...

Bitmap

11111000 11111111 11001111 11111000

...

Memria ocupada Memria livre


31

GERENCIAMENTO DE MEMRIA

Tcnica com Listas Encadeadas:

Uma lista para os espaos vazios e outra para os espaos cheios, ou uma lista para ambos! espao segmento
tamanho 5 P 0 5 H 5 3 P 8 6

comea com zero

.......

H 29 3

Processo

Hole (espao vazio)

tamanho 3

comea com 5
32

GERENCIAMENTO DE MEMRIA

Algoritmos de Alocao quando um novo processo criado:

FIRST FIT
1 segmento usado; rpido, mas pode desperdiar memria por fragmentao;

NEXT FIT
1 segmento usado; mas na prxima alocao inicia busca do ponto que parou anteriormente; possui desempenho inferior;

33

GERENCIAMENTO DE MEMRIA

BEST FIT
procura na lista toda e aloca o espao que mais convm; menor fragmentao; mais lento;

WORST FIT

aloca o maior espao disponvel;

QUICK FIT

mantm listas separadas para os espaos mais requisitados;

34

GERENCIAMENTO DE MEMRIA

Cada algoritmo pode manter listas separadas para processos e para espaos livres:
Vantagem:
Aumenta

desempenho;

Desvantagens:
Aumenta

complexidade quando espao de memria liberado gerenciamento das listas; Fragmentao;

35

GERENCIAMENTO DE MEMRIA

Swapping:

chaveamento de processos inteiros entre a memria principal e o disco; Transferncia do processo da memria principal para a memria secundria (normalmente disco): Swap-out; Transferncia do processo da memria secundria para a memria principal: Swap-in; Pode ser utilizado tanto com parties fixas quanto com parties variveis;

36

CONTEDO
Consideraes Iniciais Gerenciamento de Memria
Memria Virtual Consideraes Finais
37

MEMRIA VIRTUAL

Histrico:

Programas maiores que a memria eram divididos em pedaos menores chamados overlays tarefa do programador; Vantagem: expanso (virtual) da memria; Desvantagem: complexidade e custo alto;

Memria Virtual:

SO responsvel por dividir o programa em overlays; SO realiza o chaveamento dos pedaos entre as memrias principal e a secundria (disco);
38

MEMRIA VIRTUAL

Conceito introduzido na dcada de 60;

ATLAS: primeiro sistema com MV


(Universidade Manchester - Reino Unido);

1972 - IBM System/370; 2008 vastamente utilizado (embora memria principal tenha um tamanho fenomenal se comparado com as dcadas anteriores)

39

MEMRIA VIRTUAL

Organizao bsica:
Espao
todos

de Endereamento Lgico:

os endereos lgicos que um processo pode

gerar; depende do processador (barramento de endereos);


Espao
todos

de Endereamento Fsico:

os endereos fsicos aceitos pela memria principal (RAM); depende do tamanho da memria fsica (RAM);
40

MEMRIA VIRTUAL

Com MV existe a sensao de se ter mais memria principal do que realmente se tem; O hardware muitas vezes implementa funes da gerncia de memria virtual: SO deve considerar caractersticas da arquitetura;

41

MEMRIA VIRTUAL

Unidade de Gerenciamento de Memria


MMU Memory Management Unit : Realiza mapeamento dos endereos lgicos (usados pelos processos) para endereos fsicos;

Endereo Lgico Processador MMU

Endereo Fsico Memria Principal

Unidade de Processamento
42

MEMRIA VIRTUAL

Tcnicas de MV:

Paginao:
Blocos de tamanho fixo chamados de pginas; SO mantm uma fila de todas as pginas; Endereos Virtuais formam o espao de endereamento virtual; O espao de endereamento virtual dividido em pginas; Mapeamento entre endereos fsicos (reais) e virtuais;

Segmentao:

Blocos de tamanho arbitrrio;

Limitao pela arquitetura;

43

MEMRIA VIRTUAL - PAGINAO

Memria Principal e Memria Secundria so organizadas em pginas de mesmo tamanho; Pgina: unidade bsica para transferncia de informao;

Tabela de pginas: mapeamento de pginas lgicas (virtuais) em pginas fsicas (reais):

argumento de entrada nmero da pgina virtual; argumento de sada (resultado) nmero da pgina fsica (moldura de pgina - page frame);
44

MEMRIA VIRTUAL - PAGINAO


Espao de endereamento virtual de A Tabela de mapeamento de A Endereo virtual 1

. . .
Memria Principal

Processo A

Espao de endereamento virtual de B Tabela de mapeamento de B

Endereo virtual 1

. . .

Processo B

45

MEMRIA VIRTUAL - PAGINAO

Exemplo:
Pginas
4096

de 4Kb

bytes/endereos (0-4095);

64Kb

de espao virtual; 32Kb de espao real; Temos:


16

pginas virtuais; 8 pginas reais;

46

MEMRIA VIRTUAL - PAGINAO


Espao Virtual X Tamanho da Pgina
Espao de Endereamento Virtual 232 endereos

Tamanho da pgina
512 bytes

Nmero de pginas
223 220 252 248

Nmero de entradas nas tabela de pginas 223 220 252 248


47

232

endereos

4 kbytes
4 kbytes

264 endereos

264 endereos

64 kbytes

MEMRIA VIRTUAL - PAGINAO

Problemas:

Fragmentao interna; Definio do tamanho das pginas;


Geralmente a MMU que define e no o SO; Pginas maiores: leitura mais eficiente, tabela menor, mas maior fragmentao interna; Pginas menores: leitura menos eficiente, mas menor fragmentao interna; Sugesto: 1k a 8k;

Mapa de bits ou uma lista encadeada com as pginas livres;


48

MEMRIA VIRTUAL - PAGINAO


Espao de Endereos Virtuais (lgicos)
pginas virtuais com 4k
000 00 000 01 000 10 000 11 001 00 001 01 001 10 001 11

Endereos Fsicos de Memria


pginas fsicas com 4k
010 00 010 01 010 10 010 11 101 00 101 01 101 10 101 11

x1 x2 x3 x4 y1 y2 y3 y4

Tabela de Pginas
Pgina Lgica Pgina Fsica

x1 x2 x3 x4 y1 y2 y3 y4

Endereo Lgico de y2

000 001

010 101

Endereo Fsico de y2

001 01
pgina

101 01
pgina posio/ deslocamento 49

posio/deslocamento

MEMRIA VIRTUAL - PAGINAO


operao interna de uma

MMU com 16 pginas de 4Kb;


endereo virtual de 16

bits: 4 bits para n de pginas e 12 para deslocamento;


com 4 bits possvel ter

16 pginas virtuais (24);


12 bits de deslocamento:

enderea os 4096 bytes;


50

MEMRIA VIRTUAL - PAGINAO

Tabela de Pginas: 32 bits (mais comum)


Nmero da Moldura de Pgina

Identifica a pgina fsica; Campo mais importante;

51

MEMRIA VIRTUAL - PAGINAO

Tabela de Pginas: 32 bits (mais comum)


Nmero da Moldura de Pgina

Bit de Residncia: Se valor igual 1, ento entrada vlida para uso; Se valor igual 0, ento entrada invlida, pois pgina virtual correspondente no est na memria;

52

MEMRIA VIRTUAL - PAGINAO

Tabela de Pginas: 32 bits (mais comum)


Nmero da Moldura de Pgina

Bits de Proteo: Indicam tipos de acessos permitidos: 1 bit 0 leitura/escrita 1 leitura 3 bits 0 Leitura 1 Escrita 2 - Execuo
53

MEMRIA VIRTUAL - PAGINAO

Tabela de Pginas: 32 bits (mais comum)


Nmero da Moldura de Pgina

Bit de Modificao (Bit M): Controla o uso da pgina; Se valor igual a 1, pgina foi escrita; pgina copiada para o disco Se valor igual a 0, pgina no foi modificada; pgina no copiada para o disco;
54

MEMRIA VIRTUAL - PAGINAO

Tabela de Pginas: 32 bits (mais comum)


Nmero da Moldura de Pgina

Bit de Referncia (Bit R): Controla o uso da pgina; Auxilia o SO na escolha da pgina que deve deixar a MP (RAM); Se valor igual a 1, pgina foi referenciada (leitura/escrita); Se valor igual a 0, pgina no referenciada;
55

MEMRIA VIRTUAL - PAGINAO

Tabela de Pginas: 32 bits (mais comum)


Nmero da Moldura de Pgina

Bit de Cache: Necessrio quando os dispositivos de entrada/sada so mapeados na memria e no em um endereamento especfico de E/S;

56

MEMRIA VIRTUAL - PAGINAO

A Tabela de pginas pode ser armazena de trs diferentes maneiras:


Registradores se a memria for pequena; Na prpria memria RAM MMU gerencia utilizando dois registradores:

Registrador Base da tabela de pginas (PTBR page table base register): indica o endereo fsico de memria onde a tabela est alocada;

Registrador Limite da tabela de pginas (PTLR page table limit register): indica o nmero de entradas da tabela (nmero de pginas);
Dois acessos memria;
57

MEMRIA VIRTUAL - PAGINAO


Em

uma memria cache na MMU - Memria Associativa;


Tambm

conhecida como TLB (Translation Lookaside Buffer - buffer de traduo dinmica);

Hardware

especial para mapear endereos virtuais para endereos reais sem ter que passar pela tabela de pginas na memria principal; (e muito) o desempenho;

Melhora

58

MEMRIA VIRTUAL - PAGINAO

Cada pgina lgica (virtual) carregada em uma pgina fsica (real), de mesmo tamanho, e uma tabela de pginas construda;

Paginao simples:

todas as pginas lgicas de um processo sempre so carregadas para a memria fsica; assim, sempre todas as pginas so vlidas;

59

MEMRIA VIRTUAL - PAGINAO

Paginao por demanda (Demand Paging):

Apenas as pginas efetivamente acessadas pelo processo so carregadas na memria fsica;

Bit de controle: quais pginas lgicas foram carregadas;


Uma pgina invlida pode significar:
A pgina est fora do espao lgico do processo; A pgina ainda no foi carregada para a memria fsica;

60

MEMRIA VIRTUAL - PAGINAO

Pgina invlida:

MMU gera uma interrupo de proteo e aciona o sistema operacional;


Se a pgina est fora do espao de endereamento do processo, o processo abortado; Se a pgina ainda no foi carregada na memria fsica, ocorre uma falta de pgina (page fault);

Falta: erro de acesso ..., ausncia de...

61

MEMRIA VIRTUAL - PAGINAO

Falta de Pgina:

Processo suspenso e seu descritor inserido em uma fila especial fila dos processos esperando uma pgina lgica;
Uma pgina fsica livre deve ser alocada; A pgina lgica acessada deve ser localizada no disco; Operao de leitura de disco, indicando o endereo da pgina lgica no disco e o endereo da pgina fsica alocada;

62

MEMRIA VIRTUAL - PAGINAO

Aps a leitura do disco:


Tabela

de pginas do processo atualizada para indicar que a pgina lgica agora est vlida e est na pgina fsica alocada;
Pager:

carrega pginas especificas de um processo, do disco para a memria principal;

descritor do processo retirado da fila especial e colocado na fila do processador;


63

MEMRIA VIRTUAL PAGINAO


Memria Lgica
0 1 2 3 4 5 6 7 A B C D E F G H

Memria Fsica
0 1 2 3 D 4 G 5 6 7 8 9 10 C 11 12 13 14 15

Disco
A B C D E F G H

Tabela de Pginas Simplificada


0 1 2 10 3 3 4 5 6 4 7
i i v v i i v i

Pgina Lgica

Pgina Fsica

64

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Se todas as pginas estiverem ocupadas, uma pgina deve ser retirada: pgina vtima;
Ex.:
Dois

processos P1 e P2, cada um com 4 pginas lgicas; Memria fsica com 6 pginas;

65

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS


Memria Lgica P1
0 1 2 3 A B C D

Tabela de Pginas P1 Simplificada


0 1 2 3 1 5 0 v v i v

Disco
A B C D E F G H

Memria Fsica
0 D 1 A 2 F 3 E 4 G 5 B 3 pginas de cada processo

Memria Lgica P2
0 1 2 3 E F G H

Tabela de Pginas P2 Simplificada


0 1 2 3 3 2 4 v v v i

P2 tenta acessar pgina 3! Falta de Pgina!


66

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS


Memria Lgica P1
0 1 2 3 A B C D

Tabela de Pginas P1 Simplificada


0 1 2 3 1 5 0 v v i v

Disco
A B C D E F G H

Memria Fsica
0 D 1 A 2 F 3 E 4 H 5 B 3 pginas de cada processo

Memria Lgica P2
0 1 2 3 E F G H

Tabela de Pginas P2 Simplificada


0 1 2 3 3 2 4 v v i v

Pgina 2 (lgica) escolhida como vtima!


67

MEMRIA VIRTUAL PAGINAO

Tabela de pginas invertida:

Geralmente, cada processo tem uma tabela de pginas associada a ele classificao feita pelo endereo virtual;

Pode consumir grande quantidade de memria;

Alternativa: tabela de pginas invertida;


SO constri tabela nica de pginas fsicas; Cada entrada possui o endereo virtual da pgina armazenada naquela posio de memria real, com informaes sobre o processo dono da pgina virtual; Exemplos de sistemas: IBM System/38, IBM RISC System 6000, IBM RT e estaes HP Spectrum;
68

MEMRIA VIRTUAL PAGINAO TABELA DE PGINAS INVERTIDA


CPU
Endereo lgico pid p d

Endereo fsico

Memria

i
Pesquisa
pid d

Tabela de pginas invertida


Endereo lgico: <id processo (pid), nmero pgina (p), deslocamento (d)>
69

MEMRIA VIRTUAL PAGINAO TABELA DE PGINAS INVERTIDA

Quando uma referncia de memria realizada (pgina virtual), a tabela de pginas invertida pesquisada para encontrar a moldura de pgina correspondente;
Se

encontra, o endereo fsico gerado <i, deslocamento>;


70

MEMRIA VIRTUAL PAGINAO TABELA DE PGINAS INVERTIDA

Vantagens:

Ocupa menos espao; Mais fcil de gerenciar apenas uma tabela;

Desvantagens:

Aumenta tempo de pesquisa na tabela, pois, apesar de ser classificada por endereos fsicos, pesquisada por endereos lgicos;

Aliviar o problema: tabela de hashing;

Uso da TLB (memria associativa) para manter entradas recentemente utilizadas;

71

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmos para troca de pginas:


Similar aos algoritmos para troca de

blocos em caches de processador Pginas em Web caches Arquivos em servidores de arquivos, etc.

Diferenas:

Tempos envolvidos Quantidade de informao


72

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmos:

timo; NRU; FIFO; Segunda Chance; Relgio; LRU; Working set; WSClock;
73

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo timo:
Retira

da memria a pgina que tem menos chance de ser referenciada;


Praticamente Impraticvel; Usado

impossvel de se saber;

em simulaes para comparao com outros algoritmos;

74

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo Not Recently Used Page Replacement (NRU) troca as pginas no utilizadas recentemente:

02 bits associados a cada pgina R e M Classe 0 no referenciada, no modificada; Classe 1 no referenciada, modificada; Classe 2 referenciada, no modificada; Classe 3 referenciada, modificada;

R e M so atualizados a cada referncia memria;

75

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

NRU:
Periodicamente,

o bit R limpo para diferenciar as pginas que no foram referenciadas recentemente;


A

cada tick do relgio ou interrupo de relgio;

Classe 3 Classe 1;

Vantagens:

fcil de entender, eficiente para implementar e fornece bom desempenho;


76

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo First-in First-out Page Replacement


(FIFO)

SO mantm uma lista das pginas correntes na memria;

A pgina no incio da lista a mais antiga e a pgina no final da lista a mais nova;

Simples, mas pode ser ineficiente, pois uma pgina que est em uso constante pode ser retirada; Pouco utilizado;
77

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS


Algoritmo
FIFO

da Segunda Chance

+ bit R (Referenciado); Pgina mais velha candidata em potencial;


Se o bit R=0, ento pgina retirada da memria, seno, R=0 e se d uma nova chance pgina colocando-a no final da lista; 0 3 7 8 tempo 1 pgina A B C D Pgina mais recente
3 1 pgina B

7
C

8
D

10
A Pgina mais recente

Se pgina A com R==1; e falta de pgina em tempo 10; Ento R=0 e pgina A vai para final da lista;
78

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo do Relgio

Lista circular com ponteiro apontando para a pgina mais antiga Algoritmo se repete at encontrar R=0; Se R=1 -R=0

Se R=0 - troca de pgina

- desloca o ponteiro

- desloca o ponteiro
- continua busca
79

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo do Relgio

80

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo Least Recently Used Page


Replacement (LRU)

Troca a pgina menos recentemente referenciada/modificada; Alto custo

Lista encadeada com as pginas que esto na memria, com as mais recentemente utilizadas no incio e as menos utilizadas no final; A lista deve ser atualizada a cada referncia da memria;

81

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo Least Recently Used Page Replacement (LRU)


implementado
Hardware:

em hardware ou em software:

MMU deve suportar a implementao

LRU; Exemplo:
Contador em hardware (64 bits); Tabela de pginas tem o valor do contador para saber quando a pgina foi usada;
82

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo Least Recently Used Page Replacement (LRU)


Software:

duas maneiras

NFU (Not frequently used);

Aging (Envelhecimento);

83

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Software: NFU (No Usada Freqentemente)


Para

cada pgina existe um contador iniciado com zero e somado ao bit R a cada interrupo de clock;
Pgina

com menor valor do contador candidata a esse algoritmo no se esquece de nada

troca;
Problema:

84

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Software: Algoritmo aging


Modificao

do NFU, resolvendo o problema do no esquecimento;


Alm

de saber quantas vezes a pgina foi referenciada, tambm controla quando ela foi referenciada;

Geralmente,

8 bits so suficientes para o controle se as interrupes de relgio (clock ticks) ocorrem a cada 20ms (10-3);
85

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo aging
clock tick 2 110101 11100000 11000000 00100000 10000000 01100000 10100000 c) clock tick 3 100010 11110000 01100000 00100000 01000000 10110000 01010000 d) clock tick 4 011000 01111000 10110000 10001000 00100000 01011000 00101000 e)
86

Bits R para pginas 0-5 clock tick 0 clock tick 1 101011 110010 Contadores
0 10000000 1 00000000 2 10000000 3 00000000 4 10000000 5 10000000 a) 11000000 10000000 01000000 00000000 11000000 01000000 b)

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo Working Set (WS):

Paginao por demanda: pginas so carregadas na memria somente quando so necessrias; Pr-paginao: Working set

Conjunto de pginas que um processo est efetivamente utilizando (referenciando) em um determinado tempo t;

Objetivo principal: reduzir a falta de pginas


Um processo s executado quando todas as pginas necessrias no tempo t esto carregadas na memria; SO gerencia quais pginas esto no Working Set;

w(k,t)
87

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo Working Set (WS):


Para

simplificar o working set pode ser visto como o conjunto de pginas que o processo referenciou durante os ltimos t segundos de tempo; bit R e o tempo de relgio (tempo virtual) da ltima vez que a pgina foi referenciada;

Utiliza

88

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS Algoritmo Working Set: Tempo virtual atual (CVT): 2204
Bit R
Tempo do ltimo Uso (TLU)
* Se todas as pginas estiverem com R=1, uma pgina escolhida randomicamente para ser removida; ** Se todas as pginas estiverem no WS, a pgina mais velha com R=0 escolhida;

age = CVT TLU (Ex.: 2204-2084 = 120) = mltiplos clock ticks

2084 2003 1980 1213 2014

1 1 1 0 1 Percorrer as pginas examinando bit R; Se (R==1)* pgina foi referenciada; faz TLU da pgina igual ao CVT; Se (R==0 e age > ) pgina no est no working set; remove a pgina; Se (R==0 e age <= ) ** pgina est no working set; guarda pgina com maior age;
89

2020
2032 1620

1
1 0

Tabela de Pginas

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo WSClock:
Clock

+ Working Set; Lista circular de pginas formando um anel a cada pgina carregada na memria; Utiliza bit R e o tempo da ltima vez que a pgina foi referenciada; Bit M utilizado para agendar escrita em disco;
90

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo WSClock:
1620 0

Tempo virtual atual: 2204


1620 0

2084 1 2003 1 1980 1 1213 0

2032 1 2020 1 2014 1 Bit R Tempo do ltimo uso

2084 1 2003 1 1980 1 1213 0

2032 1 2020 1 2014 0

a)

R==1

b)
91

R=0 e ponteiro avana

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo WSClock:
1620 0

Tempo virtual atual: 2204


1620 0

2084 1 2003 1 1980 1 1213 0

2032 1 2020 1 2014 0 Bit R Tempo do ltimo uso

2084 1 2003 1 1980 1 2204 1

2032 1 2020 1 2014 0

c)

d)

R==0 e age>t

Nova pgina M==0 (no agenda escrita) troca 92

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo WSClock:
1620 0 2032 1

Tempo virtual atual: 2204


2204 1 2084 1 2032 1 Nova pgina

2084 1

2003 1
1980 1 1213 0

2020 1
2014 0

2003 1
1980 1 1213 0

2020 1
2014 0

c)

R==0 e age>t

d)

M==1 (agenda escrita e continua procura)


93

MEMRIA VIRTUAL PAGINAO TROCA DE PGINAS

Algoritmo WSClock:
Se

todas estiverem com M=1;


escreve pgina atual no disco, e troca a pgina;

ento

Melhor

desempenho menos acessos ao

disco;

94

MEMRIA VIRTUAL - SEGMENTAO

Segmentao: Viso do programador/compilador

Tabelas de segmentos com n linhas, cada qual apontando para um segmento de memria; Vrios espaos de endereamento; Alocao de segmentos segue os algoritmos j estudados:
FIRST-FIT; BEST-FIT; NEXT-FIT; WORST-FIT; QUICK- FIT;
95

MEMRIA VIRTUAL - SEGMENTAO

Segmentao:
Permite Facilita

proteo dos dados;

compartilhamento de procedimentos e dados entre processos; tambm utilizada para mapeamento entre os endereos lgicos e fsicos;
Tabela

MMU

de segmentos informa qual o endereo da memria fsica do segmento e seu tamanho;


96

MEMRIA VIRTUAL - SEGMENTAO

Segmentao:

Problemas encontrados embora haja espao na memria, no h espao contnuo:


Poltica de realocao: um ou mais blocos so realocados para abrir espao contnuo; Poltica de compactao: todos os espaos so compactados; Poltica de bloqueio: fila de espera; Poltica de troca: substituio de segmentos;

Sem fragmentao interna, com fragmentao externa;

97

MEMRIA VIRTUAL - SEGMENTAO


Espao de Endereos Virtuais
Segmento 00 000 00 000 01 Cdigo 000 10 000 11 001 00 001 01 Segmento 01 000 00 Dados 000 01 000 10 000 11 Segmento 10 000 00 Pilha 000 01 000 10

Espaos de Endereos Fsicos


d1 d2 d3 d4 p1 001 01 p2 001 10 p3
000 00 000 01 000 10 000 11 001 00
001 11 010 00 010 01 010 10 010 11 011 00 011 01

c1 c2 c3 c4 c5 c6
d1 d2 d3 d4 p1 p2 p3

Endereo Fsico: base + deslocamento d3 = 00000 + 00010 d3 = 00010

01

Tabela de Segmentos
Segmento Base Limite

00 01 10

01000 00000 00100

0110 (6) 0100 (4) 0011 (3)

c1 c2 c3 c4 c5 c6

98

MEMRIA VIRTUAL - SEGMENTAO


Memria Lgica P1 Tabela de Segmentos P1
Editor Limite Base 43062 68348 Editor 43062

Segmento 0

Dados 1

0 1

25286 4425

Segmento 1 Memria Lgica P2 Tabela de Segmentos P2


Editor Limite Base 43062 90003

Dados 1

68348 72773

90003 Dados 2 98553

Segmento 0

Dados 2

0 1

25286 8850

Segmento 1

Memria Fsica

99

MEMRIA VIRTUAL - SEGMENTAO

Espao lgico formado por segmentos


Cada segmento dividido em pginas lgicas; Cada segmento possui uma tabela de pginas mapear o endereo de pgina lgica do segmento em endereo de pgina fsica; No endereamento, a tabela de segmentos indica, para cada segmento, onde sua respectiva tabela de pginas est;

100

MEMRIA VIRTUAL SEGMENTAOPAGINAO


s p d
Tabela de Pginas Segmento 0

p.f

Tabela de Segmentos Tabela de Pginas Segmento 3

101

MEMRIA VIRTUAL PAGINAO X SEGMENTAO


Considerao Paginao Segmentao

Programador deve saber da tcnica?

No

Sim

Espaos de endereamento existentes

Vrios

Espao total de endereo pode exceder memria fsica? possvel distinguir procedimento de dados e proteg-los?

Sim

Sim

No

Sim

102

MEMRIA VIRTUAL PAGINAO X SEGMENTAO


Considerao Tabelas de tamanho No varivel podem ser acomodadas sem problemas? Compartilhamento de procedimentos entre usurio facilitado? Por que? No Paginao Sim Segmentao

Sim

Para obter espao de endereamento maior sem aumentar memria fsica

Para permitir que programas e dados possam ser divididos em espaos de endereamento logicamente independentes; compartilhamento e proteo
103

CONTEDO
Consideraes Iniciais Gerenciamento de Memria
Memria Virtual Consideraes Finais
104

CONSIDERAES FINAIS

Memria

recurso importante relativamente caro Compartilhado


apoio do hardware fundamental tcnicas variadas

Gerenciamento

Memria Virtual

tcnica antiga complexa influencia fortemente o desempenho


105

CONSIDERAES FINAIS

Memria Virtual

paginao segmentao segmentao com paginao complexidade aumenta

Uso eficiente da memria fundamental para obteno de desempenho

106

CONSIDERAES FINAIS

Memria Cache

muito do que foi discutido para memria virtual, aplica-se para a memria cache suporte de hardware conceito aplicvel a vrios domnios

107

CONTEDO

Consideraes Iniciais
Gerenciamento de Memria Memria Virtual Consideraes Finais
108

109

Вам также может понравиться