Você está na página 1de 53

Captulo 4 Gerenciamento de Memria

4.1 Gerenciamento bsico de memria 4.2 Troca de processos 4.3 Memria virtual 4.4 Algoritmos de substituio de pginas 4.5 Modelagem de algoritmos de substituio de pginas 4.6 Questes de projeto para sistemas de paginao 4.7 Questes de implementao 4.8 Segmentao
1

Gerenciamento de Memria
Idealmente, o que todo programador deseja dispor de uma memria que seja
grande rpida no voltil

Hierarquia de memrias
pequena quantidade de memria rpida, de alto custo cache quantidade considervel de memria principal de velocidade mdia, custo mdio gigabytes de armazenamento em disco de velocidade e custo baixos

O gerenciador de memria trata a hierarquia de memrias


2

Gerenciamento Bsico de Memria


Monoprogramao sem Troca de Processos ou Paginao

Trs maneiras simples de organizar a memria


- um sistema operacional e um processo de usurio
3

Multiprogramao com Parties Fixas

Parties fixas de memria


a) filas de entrada separadas para cada partio b) fila nica de entrada
4

Modelagem de Multiprogramao

Utilizao da CPU como uma funo do nmero de processos na memria


5

Anlise de Desempenho de Sistemas de Multiprogramao

Chegada de 4 jobs e suas necessidades de trabalho Utilizao da CPU por at 4 jobs com 80% de espera por E/S Sequncia de eventos entre chegada e trmino dos jobs
Note que os nmeros mostram quanto tempo da CPU cada job obtm em cada intervalo
6

Relocao e Proteo
No se sabe com certeza onde o programa ser carregado na memria
Localizaes de endereos de variveis e de cdigo de rotinas no podem ser absolutos

Uma possvel soluo: instrues do programa so modificadas segundo a partio de memria em que ele ser carregado Uma soluo para relocao e proteo: uso de valores base e limite
localizaes de endereos so somadas ao valor base antes de serem mapeadas na memria fsica localizaes de endereos maior que o valor limite indicam erro
7

Troca de Processos (1)

Alteraes na alocao de memria medida que processos entram e saem da memria Regies sombreadas correspondem a regies de memria no utilizadas naquele instante
8

Troca de Processos (2)

a) Alocao de espao para uma rea de dados em expanso b) Alocao de espao para uma pilha e uma rea de dados, ambos em expanso
9

Gerenciamento de Memria com Mapas de Bits

a)

Parte da memria com 5 segmentos de processos e 3 segmentos de memria livre


pequenos riscos simtricos denotam as unidades de alocao regies sombreadas denotam segmentos livres

b) c)

Mapa de bits correspondente Mesmas informaes em uma lista encadeada


10

Gerenciamento de Memria com Listas Encadeadas

Quatro combinaes de vizinhana para o processo X em trmino de execuo


11

Memria Virtual Paginao (1)

Localizao e funo da MMU


12

Memria Virtual Paginao (2)

A relao entre endereos virtuais e endereos fsicos de memria dada pela tabela de pginas
13

Tabelas de Pginas (1)

Operao interna de uma MMU com 16 pginas de 4KB


14

Tabelas de Pginas(2)

a) Endereo de 32 bits com 2 campos para endereamento de tabelas de pginas b) Tabelas de pginas com 2 nveis
15

Tabelas de Pginas(3)

Entrada tpica de uma tabela de pginas


16

Memria Associativa ou TLB

TLB para acelerar a paginao


17

Tabelas de Pginas Invertidas

Comparao de uma tabela de pginas tradicional com uma tabela de pginas invertidas
18

Algoritmos de Substituio de Pginas


A falta de pgina fora uma escolha
qual pgina deve ser removida alocao de espao para a pgina a ser trazida para a memria

A pgina modificada deve primeiro ser salva


se no tiver sido modificada apenas sobreposta

Melhor no escolher uma pgina que est sendo muito usada


provavelmente precisar ser trazida de volta logo
19

O Algoritmo de Substituio de Pgina timo


Substitui a pgina necessria o mais a frente possvel
timo mas no realizvel

Estimada atravs de...


registro do uso da pgina em execues anteriores do processo ... apesar disto ser impraticvel

20

O Algoritmo de Substituio de Pgina No Usada Recentemente (NUR)


Cada pgina tem os bits Referenciada (R) e Modificada (M)
Bits so colocados em 1 quando a pgina referenciada e modificada

As pginas so classificadas

Classe 0: no referenciada, no modificada Classe 1: no referenciada, modificada Classe 2: referenciada, no modificada Classe 3: referenciada, modificada

NUR remove pgina aleatoriamente


da classe de ordem mais baixa que no esteja vazia
21

Algoritmo de Substituio de Pgina Primeira a Entrar, Primeira a Sair


Mantm uma lista encadeada de todas as pginas
pgina mais antiga na cabea da lista pgina que chegou por ltimo na memria no final da lista

Na ocorrncia de falta de pgina


pgina na cabea da lista removida nova pgina adicionada no final da lista

Desvantagem
pgina h mais tempo na memria pode ser usada com muita freqncia
22

Algoritmo de Substituio de Pgina Segunda Chance (SC)

Operao do algoritmo segunda chance


a) b) lista de pginas em ordem FIFO estado da lista em situao de falta de pgina no instante 20, com o bit R da pgina A em 1 (nmeros representam instantes de carregamento das pginas na memria)
23

Algoritmo de Substituio de Pgina Relgio

24

Menos Recentemente Usada (MRU)


Assume que pginas usadas recentemente logo sero usadas novamente
retira da memria pgina que h mais tempo no usada

Uma lista encadeada de pginas deve ser mantida


pgina mais recentemente usada no incio da lista, menos usada no final da lista atualizao da lista cada referncia memria

Alternativamente manter contador em cada entrada da tabela de pgina


escolhe pgina com contador de menor valor zera o contador periodicamente
25

Simulao do MRU em Software (1)

MRU usando uma matriz pginas referenciadas na ordem 0,1,2,3,2,1,0,3,2,3


26

Simulao do MRU em Software (2)

O algoritmo do envelhecimento (aging) simula o MRU em software Note 6 pginas para 5 tiques de relgio, (a) (e)
27

O Algoritmo de Substituio de Pgina do Conjunto de Trabalho (1)

O conjunto de trabalho o conjunto de pginas usadas pelas k referncias mais recentes memria w(k,t) o tamanho do conjunto de trabalho no instante t
28

O Algoritmo de Substituio de Pgina do Conjunto de Trabalho (2)

O algoritmo do conjunto de trabalho


29

O Algoritmo de Substituio de Pgina WSClock

Operao do Algoritmo WSClock

30

Reviso dos Algoritmos de Substituio de Pgina

31

Modelagem de Algoritmos de Substituio de Pgina Anomalia de Belady

FIFO com 3 molduras de pgina FIFO com 4 molduras de pgina P mostra quais referncias de pgina causaram faltas de pgina
32

Questes de Projeto para Sistemas de Paginao Poltica de Alocao Local x Global (1)

(a) Configurao original (b) Substituio local (c) Substituio global


33

Poltica de Alocao Local x Global (2)

Freqncia de faltas de pgina como funo do nmero de molduras de pgina alocado


34

Controle de Carga
Mesmo com um bom projeto, o sistema ainda pode sofrer paginao excessiva (thrashing) Quando o algoritmo PFF indica
alguns processos precisam de mais memria mas nenhum processo precisa de menos

Soluo : Reduzir o nmero de processos que competem pela memria


levar alguns deles para disco e liberar a memria a eles alocada reconsiderar grau de multiprogramao
35

Tamanho de Pgina (1)

Tamanho de pgina pequeno


Vantagens
menos fragmentao interna menos programa no usado na memria

Desvantagens
programas precisam de mais pginas, tabelas de pgina maiores

36

Tamanho de Pgina (2)


Custo adicional da tabela de pginas e fragmentao interna Espao da tabela

s e p custo adicional overhead p 2


Onde

de pginas

Fragmentao interna

s = tamanho mdio do processo em bytes p = tamanho da pgina em bytes e = tamanho da entrada da tabela de pgina

O resultado :

p 2 se
37

Pginas Compartilhadas

Dois processos que compartilham o mesmo cdigo de programa e, por conseqncia, a mesma tabela de pginas para instrues
38

Poltica de Limpeza
Precisa de um processo que executa em background, um daemon de paginao
Inspeciona periodicamente o estado da memria

Quando apenas algumas molduras de pgina esto disponveis


Seleciona pginas a serem removidas usando um algoritmo de substituio

Pode ser implementada atravs de lista circular (relgio) com dois ponteiros
Ponteiro da frente controlado pelo daemon de paginao Ponteiro de trs usado para substituio de pgina (como no do relgio)
39

Questes de Implementao Envolvimento do S.O. com a Paginao Quatro circunstncias de envolvimento:


1.

Criao de processo
determina tamanho do programa cria tabela de pgina

2.

Execuo de processo
MMU reinicia tabela para novo processo TLB esvaziada

3.

Ocorrncia de falta de pgina


determina endereo virtual que causou a falta descarta, se necessrio, pgina antiga carrega pgina requisitada para a memria

4.

Terminao de processo
Libera tabela de pginas, pginas, e espao em disco que as pginas ocupam
40

Tratamento de Faltas de Pgina (1)


1) Hardware desvia a execuo para o ncleo 2) Salva contedo de registradores e outras informaes volteis 3) SO determina a pgina virtual necessria 4) SO checa validade de endereo, busca moldura de pgina 5) Se moldura de pgina selecionada foi modificada (suja), salv-la em disco
41

Tratamento de Faltas de Pgina (2)


6) SO busca em disco pgina virtual referenciada 7) Tabela de pginas atualizada 8) Estado da instruo que causou falta de pgina recuperado 9) Processo que causou falta de pgina escalado para executar 10)Programa continua
42

Recuperao de Instruo

Uma instruo causadora de falta de pgina


43

Fixao de Pginas na Memria


Memria virtual e E/S interagem ocasionalmente Processo emite chamada ao sistema para ler do disco para o buffer
enquanto espera pela E/S, outro processo inicia ocorre uma falta de pgina buffer do primeiro processo pode ser escolhido para ser levado para disco

Soluo possvel
Fixao de pginas envolvidas com E/S na memria

44

Memria Secundria

(a) Paginao para uma rea de troca esttica (b) Pginas alocadas dinamicamente em disco
45

Segmentao (1)

Espao de endereamento unidimensional com tabelas crescentes Uma tabela pode atingir outra
46

Segmentao (2)

Permite que cada tabela cresa ou encolha, independentemente


47

Segmentao (3)

Comparao entre paginao e segmentao


48

Segmentao com Paginao: Pentium (1)

Um seletor do Pentium
49

Segmentao com Paginao: Pentium (2)

Descritor de segmento de cdigo do Pentium Segmentos de dados diferem ligeiramente


50

Segmentao com Paginao: Pentium (3)

Converso de um par (seletor, deslocamento) para um endereo linear


51

Segmentao com Paginao: Pentium (4)

Mapeamento de um endereo linear sobre um endereo fsico


52

Segmentao com Paginao: Pentium (5)

Proteo no Pentium
53

Você também pode gostar