memoria_virtual_fatec
49 pág.

memoria_virtual_fatec


DisciplinaSistemas Operacionais I9.277 materiais183.240 seguidores
Pré-visualização3 páginas
\uf06f Quanto maior for o Working Set, menor será a probabilidade de 
ocorrerem page faults.
\uf06f Quanto maior o Working Set, maior o consumo de memória e 
menor a quantidade de processos carregados na memória principal 
ao mesmo tempo, consequentemente, menor o grau de 
multiprogamação.
Paginação - Realocação de Páginas
\uf06f O maior problema na gerência de memória virtual por paginação 
não é decidir qual página carregar para a memória, mas sim, quais 
páginas remover.
\uf06f Qualquer estratégia de realocação de página deve considerar se 
uma página foi ou não modificada, antes de liberá-la para outro 
processo.
\uf06f Possíveis alterações feitas na página quando ocupada podem ser 
perdidas.
Paginação - Realocação de Páginas
\uf06f O sistema possui um arquivo de paginação ( page file ) onde as 
páginas modificadas ficam armazenadas.
M e m ó r i a P r i n c i p a l
A r q u i v o d e
p a g i n a ç ã o
P a g e o u t
P a g e i n
Paginação - Realocação de Páginas
\uf06f Sempre que o sistema liberar uma página, deverá gravá-la no 
arquivo de páginas ( page out ), preservando o seu conteúdo.
M e m ó r i a P r i n c i p a l
A r q u i v o d e
p a g i n a ç ã o
P a g e o u t
P a g e i n
Paginação - Realocação de Páginas
\uf06f Quando uma destas páginas alteradas for referenciada 
novamente, ela será recuperada do arquivo de páginas e trazida 
para o Working Set do processo ( page in ).
M e m ó r i a P r i n c i p a l
A r q u i v o d e
p a g i n a ç ã o
P a g e o u t
P a g e i n
Paginação - Realocação de Páginas
\uf06f O sistema sabe se uma página foi alterada ou não através do bit de 
modificação (modify bit ou dirty bit), que existe na ETP de cada 
tabela de página.
\uf06f A melhor estratégia de realocação seria aquela onde a escolha 
caisse sobre uma página que não fosse referenciada num futuro 
próximo, porém o SO têm dificuldade em prever isso.
\uf06f Assim, algumas estratégias são adotadas pelos SOs para a 
realocação de páginas.
Paginação - Realocação de Páginas
\uf06f Aleatória (RANDOM)
\uf06e Esta escolha não utiliza critério algum para a seleção.
\uf06e Todas as páginas do working set tem as mesmas chances de 
serem selecionadas, inclusive páginas que são freqüentemente 
referenciadas.
\uf06e Apesar de ser uma estratégia que consome poucos recursos 
não é tão comum.
Paginação - Realocação de Páginas
\uf06f First In First Out (FIFO)
\uf06e A página que primeiro foi utilizada será a primeira a ser 
escolhida.
\uf06e Implementação bastante simples, sendo necessário apenas 
uma fila onde as páginas mais antigas estão no início da fila e 
as mais novas no final.
\uf06e As páginas podem ter que voltar várias vezes à fila.
Paginação - Realocação de Páginas
\uf06f Least Recently Used ( LRU )
\uf06e Esta estratégia seleciona a página utilizada menos 
recentemente, ou seja, a página que está mais tempo sem ser 
referenciada.
\uf06e Gera overhead causado pela atualização em cada paragina 
referenciada, do momento do último acesso, além do algoritmo 
de busca das páginas.
Paginação - Realocação de Páginas
\uf06f Not Used Recently ( NRU )
\uf06e Bastante semelhante a LRU.
\uf06e Nesta estratégia existe um flag que permite ao sistema a 
implementação do algoritmo. O flag de referência indica 
quando a página foi referenciada ou não, e está associado a 
cada entrada na tabela de páginas.
\uf06e Inicialmente, todas as páginas estão com flag indicando que 
não foram referenciadas (0).
\uf06e A medida que as páginas são referenciadas, o flag é modificado 
pelo hardware (1), depois de certo tempo é possível saber 
quais páginas foram referenciadas ou não.
Paginação - Realocação de Páginas
\uf06f Least Frequently Used ( LFU )
\uf06e Neste esquema, a página menos referenciada, ou seja, a 
menos freqüentemente utilizada será a página escolhida.
\uf06e Para isso, é mantido um contador di número de referências 
feitas às páginas.
\uf06e A página que contiver o contador com o menor número de 
referências será a página escolhida.
\uf06e Este algoritmo privilegia páginas que são mais utilizadas.
\uf06e Páginas que acabaram de entrar na memória podem ser 
escolhidas para deixar a mesma.
Segmentação
\uf06f A segmentação é uma técnica de gerência de memória, onde os 
processos são divididos logicamente em sub-rotinas e estruturas 
de dados, e colocados em blocos de informações na memória.
\uf06f Os blocos tem tamanhos diferentes e são chamados de segmentos, 
cada um com seu próprio espaço de endereçamento.
\uf06f A grande diferença entre a paginação e a segmentação é que, 
enquanto a primeira divide a memória em partes de tamanho fixos, 
sem qualquer ligação com a estrutura do processo, a segmentação 
permite uma relação entre a lógica do processo e sua divisão na 
memória.
Segmentação
P R O G R A M S e g m e n t o ;
 V A R A : A R R A Y . . .
 C : . . .
P R O C E D U R E X ;
E N D ;
F U N C T I O N Y ;
E N D ;
B E G I N
E N D .
P r o c e d i m e n t o X
P r o g r a m a P r i n c i p a l
F u n ç ã o Y
A r r a y A
V a r i á v e l C
.
.
.
Segmentação
\uf06f Os segmentos são mapeados através de tabelas de mapeamento 
de segmentos (TMS).
\uf06f Os endereços são compostos pelo número do segmento e um 
deslocamento dentro do segmento.
\uf06f O número do segmento identifica unicamente uma entrada na 
tabela de segmentos (ETS), onde estão as informações sobre o 
segmento na memória real.
Segmentação
D e s l o c a m e n t o
E n d e r e ç o v i r t u a l
D e s l o c .
E n d . d o s e g m e n t o
E T S
T a b e l a d e s e g m e n t o s
D e s l o c .
S e g m e n t o n a
m e m ó r i a p r i n c i p a l
D e s l o c a m e n t o
E n d e r e ç o f í s i c o
S e g m e n t o v i r t u a l
Segmentação
\uf06f O SO mantém uma tabela com áreas livres e ocupadas da 
memória.
\uf06f Quando um novo processo é carregado para a memória, o sistema 
localiza um espaço livre que o acomode.
\uf06f As estratégias para escolha da área livre podem ser as mesmas 
utilizadas na Alocação Particionada Dinâmica, ou seja, best fit, 
worst fit ou first fit.
\uf06f O problema da fragmentação também ocorre nesse modelo.
\uf06f Um outro problema é sua complexidade, pois o SO deve manter 
tabelas de segmentos que variam de acordo com o número de 
segmentos.
Segmentação com paginação
\uf06f Sistemas que implementam a segmentação com paginação 
permitem a divisão lógica dos processos em segmentos e, por sua 
vez, cada segmento é dividido, fisicamente, em páginas.
Segmentação com paginação
E n d e r e ç o d o f r a m e D e s l o c a m e n t o
D e s l o c a m e n t oN u m .s e g m e n t o
N u m .
p á g i n a
E n d e r e ç o v i r t u a l
S e g m e n t o v i r t u a l
E n d . d a t a b e l a d e p á g i n a s
E T S
T a b e l a d e s e g m e n t o s
E n d e r e ç o d o f r a m e
E T P
T a b e l a d e p á g i n a s
E n d e r e ç o f í s i c o
Proteção
\uf06f A proteção é necessária para impedir que um processo, ao obter 
acesso a uma página ou segmento do sistema, a modifique ou 
mesmo tenha acesso a ela.
\uf06f Este esquema é implementado utilizando-se as entradas das 
tabelas de mapeamento, onde alguns bits especificam os acessos 
permitidos a cada uma das páginas / segmentos.
L G E n d e r e ç o d ap á g i n a / s e g m e n t o
B i t s d e p r o t e ç ã o
Proteção
D e s c r i ç ã o
S e m a c e s s o
A c e s s o d e l e i t u r a
A c e s s o p a r a l e i t u r a / g r a v a ç ã o
L G
0 0
1 0
1 1
Compartilhamento de Memória
\uf06f Em ambientes multiprogramáveis, é comum a utilização de códigos 
reentrantes.
P r o c e s s o A
E s p a ç o d e
e n d e r e ç a m e n t o
v i r t u a l d e A
E n d e r e ç o v i r t u a l 1
.
.
.
T a b e l a d e
m a p e a m e n t o
d e A
E s p a ç o d e
e n d e r e ç a m e n t o
v i r t u a l d e B
E n d e r e ç o v i r t u a l 1
.
.
.
T a b e l a d e
m a p e a m e n t o
d e B
P r o c e s s o B
M e m ó r i a P r i n c i p a l
P á g i n a
Swapping em Memória Virtual
\uf06f O conceito de swapping continua válido quando aplicado à 
memória virtual.
\uf06f Em sistemas que utilizam esta técnica, quando existem novos 
processos que devem