Sei sulla pagina 1di 13

Sistemas Operacionais

Gerenciamento de Memria

R.Jensen

Multiprogramao por partio varivel


As parties variveis foram desenvolvidas para substituir as parties fixas.
Os jobs so posicionados no lugar em que se encaixam
Inicialmente, nenhum espao desperdiado.
Pode ocorrer fragmentao externa quando algum processo for removido.

Designaes de parties iniciais na programao por partio varivel

Lacunas de memria em multiprogramao por partio varivel

Sistemas Operacionais

Gerenciamento de Memria

R.Jensen

Existem vrias formas de combater a fragmentao externa:


Coalescncia
Rene blocos livres adjacentes em um nico bloco grande.
Em geral isso no suficiente para obter uma quantidade significativa de memria.

Compactao
s vezes chamada coleta de lixo (que no deve ser confundida com a coleta de lixo
nas linguagens orientadas a objeto).
Reorganizao da memria em um nico bloco contguo de espao livre e em um nico
bloco contguo de espao ocupado.
Possibilita que todos espaos livres fiquem disponveis.
A sobrecarga significativa.

Coalescncia de lacunas de memria em multiprogramao por partio varivel

Compactao de memria em multiprogramao por partio varivel

Sistemas Operacionais

Gerenciamento de Memria

R.Jensen

Estratgias de posicionamento de memria em partio varivel:


Estratgia First-Fit o primeiro que couber
O processo posicionado na primeira lacuna de tamanho suficiente encontrada.
Sobrecarga baixa e elementar em tempo de execuo.
Estratgia Best-Fit o que melhor couber
O processo posicionado na lacuna que deixar o menor espao no utilizado ao seu
redor.
Maior sobrecarga em tempo de execuo.
Estratgia Worst-Fit o que pior couber
O processo posicionado na lacuna que deixar o maior espao no utilizado ao seu
redor.
Nesses casos, deixada uma outra grande lacuna, o que permite que outro processo
caiba nessa lacuna.

Sistemas Operacionais

Gerenciamento de Memria

R.Jensen

Estratgias de posicionamento de memria em partio varivel

Multiprogramao com troca de memria (SWAPPING)


No h necessidade de manter processos inativos na memria
Troca (Swapping)
Coloca apenas processos em execuo (um por vez) na memria principal.
Outros so temporariamente transferidos para o armazenamento secundrio.
Isso maximiza a memria disponvel.
H uma sobrecarga significativa quando do chaveamento de processos.

Melhor ainda: mantendo diversos processos na memria ao mesmo tempo.


Menos memria disponvel.
Tempos de resposta mais rpido.
Semelhante paginao.

Multiprogramao em um sistema de troca de processos (swapping) no qual h somente um nico processo por
vez na memria principal

Sistemas Operacionais


Gerenciamento de Memria

R.Jensen

Memria virtual
Soluciona o problema de pouco espao de memria.
Cria a iluso de que existe mais memria do que a disponvel no sistema.
Existem dois tipos de endereo nos sistemas de memria virtual:
Endereos virtuais
Referenciados por processos.
Endereos fsicos
Indicam localizaes fsicas na memria principal.
Unidade de gerenciamento de memria (MMU)
Traduz os endereos virtuais para endereos fsicos.

Armazenamento em dois nveis: memria principal (e os caches) e o armazenamento secundrio

Espao de endereo virtual, | V |


Gama de endereos virtuais que um processo pode referenciar.

Espao de endereo real, | R |


Gama de endereos fsicos disponveis em um sistema de computador especfico.

Mecanismo de traduo dinmica de endereo (DAT)


Converte endereos virtuais em endereos fsicos durante a execuo de um programa.

Pedaos de espaos de endereamento existem na memria e no armazenamento secundrio

Sistemas Operacionais

Gerenciamento de Memria

R.Jensen

Paginao
A paginao usa o mapeamento de blocos de tamanho fixo.
O endereo virtual no sistema de paginao um par ordenado v = (p, d).
p o nmero da pgina na memria virtual na qual o item referenciado reside.
d o deslocamento do incio da pgina p na qual o item referenciado est localizado.

Moldura de pgina (page frame)


Bloco de tamanho fixo na memria principal.
Comea em um endereo da memria principal que um mltiplo inteiro do tamanho fixo de
pgina (p).

Entrada de tabela de pginas (PTE)


Indica se uma pgina virtual p corresponde a uma moldura de pgina p.
Contm um bit residente para indicar se a pgina est na memria.
Se estiver, a PTE armazena o nmero da moldura da pgina.
Do contrrio, a PTE armazena a localizao da pgina no armazenamento secundrio.

Entrada de tabela de pginas

Pgina 0
Pgina 1
Pgina 2
Pgina 3
Pgina n
Memria virtual
(pginas)

Tabela de pginas

0
1

Pgina 0

2
3

Pgina 2

Pgina 1

5
6
7

Pgina 3
Memria fsica
(frames)

Modelo de paginao para as memrias virtual e fsica

Sistemas Operacionais


Gerenciamento de Memria

R.Jensen

Traduo de endereo de paginao por mapeamento direto


A tabela de pginas contm uma entrada para cada pgina do espao de endereamento virtual
do processo armazenada contiguamente, parecido com um arranjo de um array. Qualquer
entrada pode ser referenciada diretamente por um indexador.
Normalmente o sistema mantm a tabela de pginas na memria principal podendo consumir
uma quantidade significativa desta memria.
O processo referencia o endereo virtual v = (p, d).
O endereo da memria principal da tabela de pginas de um processo carregado no
registrador de origem da tabela de pginas.
O mecanismo DAT adiciona o endereo-base da tabela de pginas do processo, b, ao
nmero da pgina referenciada, p.
b + p forma o endereo de memria principal da PTE para a pgina p.
Essa PTE indica que a pgina virtual p corresponde moldura de pgina p'.
O sistema concatena p com o deslocamento, d, para formar o endereo real, r.

Traduo de endereo de paginao por mapeamento direto

Tabelas de pginas multinveis


Pode diminuir a sobrecarga de memria em comparao ao sistema de mapeamento direto.
Esse sistema pode armazenar em localizaes no contguas da memria principal apenas as
pores da tabela de pginas que o processo est usando.
As demais pores da tabela de pginas podem ser criadas da primeira vez que forem usadas e
tranferidas para o armazenamento secundrio quando no estiverem mais sendo usadas.
Cada nvel contm uma tabela que armazena ponteiros para tabelas do nvel que est abaixo.
O nvel mais inferior compreende as tabelas que contm os mapeamentos de molduras.
Por exemplo, um sistema que utilize dois nveis de tabelas de pginas:
O endereo virtual a tripla ordenada v = (p, t, d) onde (p, t) indica o nmero da pgina.
O endereo da memria principal do diretrio de pginas (a) carregado no registrador de
origem do diretrio de pginas e adicionado valor de p.
A entrada a + p contm o endereo de incio da tabela de pginas correspondente, b.
O sistema adiciona t b para localizar a entrada da tabela de pginas que armazena um
nmero de moldura de pgina, p'.
O sistema concatena p com o deslocamento, d, para formar o endereo real, r.

Sistemas Operacionais

Gerenciamento de Memria

R.Jensen

Traduo de endereo de pginas multinveis

Tabelas de pginas invertidas


Armazenam exatamente uma PTE na memria para cada moldura de pgina no sistema.
O nmero de PTEs proporcional ao tamanho da memria fsica e no ao tamanho do espao
de endereamento virtual do processo.
Usam funes de hash para mapear pginas virtuais para entradas de tabela de pginas
invertidas.
Uma funo de hash uma funo matemtica que toma um nmero como entrada e d um
nmero de sada denomindado valor de hash, dentro de uma faixa finita.
A funo de hash eventualmente pode gerar uma sada repetida, j utilizada por outra entrada,
que denominada como coliso.
Quando um valor de hash mapeia um item para uma localizao que j est ocupada, uma nova
funo de hash aplicada e a entrada colocada na nova localizao. Um ponteiro para essa
nova localizao anexado entrada do valor do hash original para garantir que seja
encontrado. Normalmente so utilizadas listas encadeadas para essa finalidade.
O processo referencia o endereo virtual v = (p, d).
Para localizar a entrada de tabela de hash da pgina virtual p, aplicada a funo de hash
a p que gera um valor q.
Se a posio q da tabela de pginas invertidas contiver p, o endereo virtual requisitado
estar na moldura de pgina q.
Se a posio q da tabela de pginas invertidas tiver outro contedo que no p, ser
verificado o ponteiro de encadeamento e se for diferente de nulo acontecer uma coliso. O
sistema seguir os ponteiros da cadeia at encontrar uma entrada que contenha p ou at a
cadeia terminar, quando ser emitida uma requisio de falta de pgina residente.
Ento p est localizado na moldura de pgina p' e o sistema concatena p com o
deslocamento, d, para formar o endereo real, r.

Sistemas Operacionais

Gerenciamento de Memria

R.Jensen

Traduo de endereo de pgina usando tabelas de pginas invertidas

Movimento de paginao:
Page in
o movimento de uma pgina da memria virtual para a memria fsica.
Ocorre quando uma pgina necessria para processamento no se encontra na memria
fsica.
Page out
o movimento de uma pgina da memria fsica para a memria virtual.
Ocorre quando a memria fsica est cheia e h necessidade de se liberar espao.
Page fault
a constatao de que uma pgina necessria para processamento no se encontra ainda
na memria fsica.

Conceitos de Localidade
Localidade temporal: a localidade ao longo do tempo. Por exemplo, se o tempo est bom em
um determinado horrio em uma cidade existe uma grande chance de estar bom tambm nos
horrios subsequentes.
Localidade espacial: significa que itens prximos devem ser semelhantes. Por exemplo, se o
tempo est bom em uma cidade existe uma grande chance de estar bom tambm nas cidades
prximas.
Um processo tende a referenciar memria conforme padres altamente localizados.
Nos sistemas de paginao, os processos tendem a favorecer determinados subconjuntos de
suas pginas, e essas pginas tendem a ser adjacentes entre si no espao de endereo virtual
do processo.

Sistemas Operacionais

Gerenciamento de Memria

R.Jensen

10

Polticas de busca de pginas


Paginao por demanda
Quando um processo executado pela primeira vez, o sistema transfere para a memria
principal a pgina que contm sua primeira instruo.
Depois disso, o sistema s transferir uma pgina do armazenamento secundrio para a
memria principal quando o processo referenciar explicitamente essa pgina.
Paginao antecipada
O sistema operacional tenta prever as pginas que um processo necessitar e carrega
previamente essas pginas quando h espao disponvel na memria.
Deve ser projetada cuidadosamente de modo que a sobrecarga dessa estratgia no
diminua o desempenho do sistema.

Estratgias de substituio de pginas


Tcnica empregada por um sistema para selecionar pginas para substituio quando a
memria est cheia.
Determina onde se deve colocar na memria principal uma pgina ou segmento que est
entrando.

Substituio de pginas FIFO (first-in-first-out primeira a entrar, primeira a sair)


Substitui a pgina que est h mais tempo no sistema.
Pode substituir pginas que so intensamente usadas.
Pode ser implementada com uma sobrecarga relativamente baixa.
No prtica para a maioria dos sistemas.

Substituio de pginas FIFO (primeira a entrar, primeira a sair)

Sistemas Operacionais


Gerenciamento de Memria

R.Jensen

11

Anomalia de FIFO (ou de Belady)


Intuitivamente imaginamos que quanto mais molduras de pginas forem alocadas a um
processo, menos falta de pginas o processo experimentaria.
Porm, foi constatado que determinados padres de referncia de pgina de fato causam mais
falhas quando o nmero de molduras de pgina alocadas a um processo aumenta.

Anomalia de FIFO

Substituio de pgina LRU (least recently used menos recentemente usada)


Explora a localidade temporal substituindo a pgina que ficou mais tempo na memria sem ser
referenciada.
Em relao FIFO, pode oferecer melhor desempenho.
A sobrecarga do sistema maior.
O desempenho da substituio LRU pode ser inadequado se a pgina menos recentemente
usada for a pgina seguinte a ser referenciada por um lao que referencia diversas pginas.

Sistemas Operacionais

Gerenciamento de Memria

R.Jensen

12

Substituio de pgina timo


A pgina que no futuro estiver mais distante de ser referenciada ser removida.
Fcil de descrever mas impossvel de implementar.

Substituio de pgina segunda chance - modificao da FIFO


Examina o bit referenciado da pgina mais antiga.
Se estiver desligado,
a estratgia seleciona essa pgina para substituio.
Se estiver ligado,
a estratgia desliga o bit e move a pgina para o final da fila FIFO.
Garante que as pginas ativas sejam as que menos tm probabilidade de ser substitudas.

Comportamento do programa sob paginao


Os processos tendem a referenciar uma parte significativa de suas pginas logo depois que a
execuo iniciada.
Eles acessam a maioria das pginas remanescentes mais vagarosamente.

Porcentagem de pginas referidas de um processo ao longo do tempo

Gerenciamento de Memria

Sistemas Operacionais

13

R.Jensen

Exerccio: Em uma memria real com quatro molduras (frames) disponveis, na sequncia em que as pginas
abaixo so solicitadas para processamento, mostre o comportamento das pginas de cada um dos algoritmos FIFO, LRU e TIMO - atravs da tabela de controle de ocupao da memria. Considerar que o ltimo elemento
de cada coluna deve conter a prxima pgina a ser substituida.

FIFO

Total de falta de pginas =

LRU

Total de falta de pginas =

TIMO

Total de falta de pginas =

Potrebbero piacerti anche