Sie sind auf Seite 1von 54

Gerenciamento de Memria Segmentao e Paginao

SO UESC 2012.2 Jos Alfredo

Paginao
Outra soluo para o problema da fragmentao externa
Permitir que o espao de endereamento lgico no seja contguo. Facilita alocar os buracos da memria. o Evita o problema idntico com a memria secundria. Alto custo para compactao
o

Memria fsica dividida em partes de tamanho fixo, chamadas de blocos (frames) Memria lgica dividia em partes de mesmo tamanho, chamada de pginas Memria secundria dividida em partes do mesmo tamanho dos blocos da memria principal

Paginao
Atribuio de endereo em tempo de execuo semelhante a usar uma tabela de registradores de base, um para cada bloco.
0 1 2 3 Pgina 0 Pgina 1 Pgina 2 Pgina 3 ... ... Memria Lgica 0 1 2 3 1 4 3 7 ... ... Tabela de Pginas Memria Fsica 4 5 6 7

Paginao: novo processo


Lista de Frames livres: 14 13 18 20 15 10 11 12 13 14 15 16 17 Pagina 0 Pagina 1 Pagina 2 Pagina 3 18 19 20 21 Memria Fsica Lista de Frames livres: 15 14 0 1 2 3 13 18 20 ... ... Tabela de Pginas 10 11 12 13 14 15 16 17 18 19 20 21 Memria Fsica Pag 3 Pag 2 Pag 1 Pag 0

Esquema de traduo de endereos


Endereos gerados pela CPU so divididos em:
Nmero da pgina (p): usado como ndice em uma tabela de pginas, o qual contm o endereo base de cada pgina na memria fsica. o Deslocamento de pgina (d): combinado com endereo base para definir o endereo na memria fsica que ser enviado para a unidade de memria.
o

Paginao

p = n da pgina d= deslocamento b = n do bloco

Tabela de Pginas

Paginao
tamanho das pginas

O tamanho da pgina (e do bloco) definido de acordo com o hardware. Normalmente uma potncia de 2 (usualmente entre 512 bytes e 8192 bytes)

Tamanho pginas: exemplo


Tamanho pagina = 1000 bytes Endereo = 17436 End. Lgico 17 436 ... 17 ... .. 23 ... ... Tabela de Pginas

CPU

23 436

Paginao
Fragmentao externa resolvida Fragmentao interna:
o o

Tam. Pgina = 2048 bytes Processo = 72766 bytes


Fragmentao = 2048 1086

35 pginas + 1086 bytes = 922 bytes

Paginao
Paginas menor = menor fragmentao interna Paginas maiores, menores os gastos com as tabelas de pginas e mais eficientes as transferncias (E/S) em disco. Separao entre memria fsica e a viso que o usurio tem da memria (espao nico e contguo) SO mantm cpia (ponteiro) das tabelas de pginas de cada processo maior tempo gasto em uma mudana de contexto.

Estrutura da tabela de pginas


Pode ser representada em hardware por um conjunto de registradores dedicados. Pode ser mantida em memria
RBTP (Registrador base de tabela de pgina) RTTP (Registrador de tamanho da tabela de pagina) o Neste esquema, todo acesso a dados/instruo requer 2 acessos memria: um para a tabela de pginas e outro para os dados/instruo
o o

Memria associativa ou TLB (Translation Look-Aside Buffer) cache em hardware de pequena capacidade e busca rpida.

Proteo de Memria
Proteo de memria implementado pela associao de um bit de proteo com cada bloco de memria Bit valido/invalido relacionado a cada entrada na tabela de pgina
valido indica que a pgina associada est no espao de endereos lgicos do processo, isto , uma pgina vlida. o invalido indica que a pgina no est no espao de endereos lgicos do processo.
o

Bit de Validade

Paginao: vrios nveis


Espao de endereamentos muitos grandes (232 a 264 ) tabelas enormes. Exemplo:
o

Soluo : dividir a tabela de paginas em varias partes

n da pgina deslocament o

Paginao: vrios nveis

Paginao: pginas compartilhadas


Outra vantagem da paginao a possibilidade de compartilhamento de cdigo Exemplo:
o

15 usurios utilizando um editor de texto

Paginao: pginas compartilhadas


P1 Tabela Pag P1 P3 Tabela Pag P3

P2 Tabela Pag P2

Paginao: pginas compartilhadas


Suponha que P1 estejam compartilhando pginas de um editor de texto
o

Problema
Se o SO remover P1 da memria, P2 ter de trazer de volta todas as pginas que compartilhava de P1. Se P1 terminar, preciso determinar se suas pginas ainda esto em uso, de forma que seu espao em disco no seja liberado.

Exerccio
Considere que os processos da tabela abaixo devem ser executados em um SO com paginao. A memria total de 64K, o tamanho das pginas de 4K e o SO ocupa 8K. Mostre como seria a alocao de quadros para cada processo.
Processo P1 P2 P3 P4 Mem. (K) 8 6 15 20 T. Cheg 0 1 2 15 T. Execuo 10 15 10 5

Substituio de Pginas
O Sis. Op. aloca as pginas na RAM medida que os processos as pedem.
o

O resto do tempo, elas so copiadas no disco

Uma tentativa de acesso a uma pgina que no est na RAM provoca uma falta de pgina
o o

Interrupo de software Tratamento muito lento

Problemas com a demanda de pginas


O SO deve tratar de dois problemas:
o o o

Alocao de pginas/quadro: Quantos quadros alocar a um processo?

Substituio de pginas:
Quando no h espao na RAM, quais pginas devem ser descartadas para possibilitar o page-in de outras? o Determinar uma pgina vtima o Otimizao pelo uso de alguns bits
Bit de sujeira ; direitos de acesso (RO)

Categorias de polticas de substituio de pginas


Onde/como escolher as pginas vtimas? Basicamente, 2 categorias de algoritmos:
o

Globais
Todas as pginas so consideradas como um pool nico. Qualquer pgina, de qualquer processo, pode ser escolhida.

Locais
Para cada processo, se mantm um conjunto de frames em uso (working set) Para efetuar um page-in, a pgina substituda ser escolhida dentro do working set do processo que pediu o page-in

Pros e Contras
As polticas globais:
Acarretam no roubo de pginas de processos menos prioritrios, pelos processos mais gulosos. o Assim, o comportamento de alguns processos se repercute no andamento de outros.
o

As polticas locais:
o o

Isolam os processos Provocam desperdio

Gerenciamento de Memria Troca de Pginas - Paginao


Algoritmos:
o o o o o o o o

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

Gerenciamento de Memria Troca de Pginas - Paginao


Algoritmo timo:
o

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


Praticamente impossvel de se saber; Impraticvel; Usado em simulaes para comparao com outros algoritmos;

Gerenciamento de Memria Troca de Pginas - Paginao


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

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;

Gerenciamento de Memria Troca de Pginas - Paginao


NRU:
o

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;

Imagine retirar um produto de um supermercado, dado que um novo chegou, e no tem mais espao nas prateleiras; O supermercado mantm uma lista de todos os produtos, por ordem de chegada; Deve-se retirar o produto estocado a mais tempo; Se o produto retirado for cera para bigode. Blz; Mas e se for acar ou cerveja por exemplo? Situao anloga a FIFO;

Gerenciamento de Memria Troca de Pginas Paginao (FIFO)

Gerenciamento de Memria Troca de Pginas - Paginao


Algoritmo First-in First-out Page
Replacement (FIFO)
o

SO mantm uma listas 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; o Pouco utilizado;
o

Gerenciamento de Memria Troca de Pginas - Paginao


Segunda Chance
Modificao de FIFO; Desta vez, se o bit R for 1, a pgina ser poupada, o bit R colocado em 0 e a pgina vai para o final da fila; o Se no, a pgina ser removida; o D-se chance s pginas que esto sendo utilizadas, mesmo sendo antigas; o Se todas as pginas forem referenciadas, o algoritmo degenera-se para FIFO;
o o

Gerenciamento de Memria Troca de Pginas - Paginao


Algoritmo da Segunda Chance
o o

FIFO + 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; Se pgina A com R==1; e falta de pgina em tempo 10; Ento R=0 e pgina A vai para final da lista;

0 1 pgina 1 pgina A 3 B

3 B 7 C

7 C 8 D

tempo D Pgina mais recente 10 A Pgina mais recente

Gerenciamento de Memria Troca de Pginas - Paginao


Algoritmo do Relgio
Difere-se do Segunda Chance apenas na implementao; O SC desnecessariamente ineficaz, j que coloca constantemente no final da fila de pginas; o O Relgio cria simplesmente uma lista circular; o Lista circular com ponteiro apontando para a pgina mais antiga o Algoritmo se repete at encontrar R=0;
o o

Se R=0 - troca de pgina - desloca o ponteiro

Se R=1 -R=0 - desloca o ponteiro - continua busca

Gerenciamento de Memria Troca de Pginas - Paginao


Algoritmo do Relgio

Gerenciamento de Memria Troca de Pginas - Paginao


MRU (Menos Recentemente Usado)
Aproximao do desempenho terico do algoritmo timo; o Assume que pginas usadas recentemente logo sero usadas novamente retira da memria pgina que h mais tempo no usada o Implementao por SW muito onerosa, pois temse que atualizar uma lista encadeada; o Uma lista encadeada de pginas deve ser mantida
o

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

Gerenciamento de Memria Troca de Pginas - Paginao Software: NFU (No usada freqentemente)
o 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 troca;

Gerenciamento de Memria Troca de Pginas - Paginao


Algoritmo Working Set (WS):
o

Paginao por demanda pginas so carregadas na memria somente quando so necessrias; o Pr-paginao Working set
Conjunto de pginas que um processo est efetivamente utilizando (referenciando) em um determinado tempo t;
o

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;

Gerenciamento de Memria Troca de Pginas - Paginao


Algoritmo Working Set (WS):
o

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

Gerenciamento de Memria Troca de Pginas - Paginao


Algoritmo Working Set:
Bit R Tempo do ltimo Uso (TLU) 2084 1 Tempo virtual atual (CVT): 2204 age = CVT TLU (Ex.: 2204-2084 = 120) = mltiplos clock ticks 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;

* Se todas as pginas 2003 1 estiverem com R=1, 1980 1 uma pgina escolhida 1213 0 randomicamente para ser 2014 1 removida; 2020 1 ** Se todas as pginas 2032 1 estiverem no WS, a pgina mais velha 1620 0 Tabela de Pginas com R=0 escolhida;

Gerenciamento de Memria Troca de Pginas - Paginao


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

Gerenciamento de Memria Troca de Pginas - Paginao


Algoritmo WSClock:
162 0 0 208 1 4 200 1 3 198 1 0 121 0 3
a) Tempo virtual atual: 2204

203 1 2 202 1 0 201 1 4 Bit R Tempo do ltimo uso


R==1

162 0 0 208 1 4 200 1 3 198 1 0 121 0 3


b)

203 1 2 202 1 0 201 0 4

R=0 e ponteiro avana

Gerenciamento de Memria Troca de Pginas - Paginao


Algoritmo WSClock:
162 0 0 208 1 4 200 1 3 198 1 0 121 0 3
c) Tempo virtual atual: 2204

203 1 2 202 1 0 201 0 4 Bit R Tempo do ltimo uso


R==0 e age>t

162 0 0 208 1 4 200 1 3 198 1 0 220 1 4


d)

203 1 2 202 1 0 201 0 4

M==0 (no agenda escrita)

Nova trocapgina

Gerenciamento de Memria Troca de Pginas - Paginao


Algoritmo WSClock:
162 0 0 208 1 4 200 1 3 198 1 0 121 0 3
c) R==0 e age>t Tempo virtual atual: 2204

203 1 2 202 1 0 201 0 4

220 1 4 208 1 4 200 1 3 198 1 0 121 0 3


d)

203 1 2 202 1 0 201 0 4

Nova pgina

M==1 (agenda escrita e continua procura)

Gerenciamento de Memria Troca de Pginas - Paginao


Algoritmo WSClock:
Se todas estiverem com M==1; ento escreve pgina atual no disco, e troca a pgina; o Melhor desempenho menos acessos ao disco;
o

Segmentao

Continua nas cenas do prximo captulo

Segmentao
Paginao = decomposio do espao de endereamento lgico em parties fixas, pequenas e arbitrrias. Na verdade, o espao lgico NO bem um espao linear entre 0 e N-1 O espao se decompe naturalmente em vrios segmentos lgicos.
o

1 segmento = 1 espao de endereamento linear

Quais segmentos ??
Estruturas de dados do processo:
o o o o

Segmento de texto; Segmento de dados; Pilha; Heap.

So segmentos definidos na compilao do programa, executado pelo processo!


o o o o o

O segmento de texto pode ser decomposto. Exemplo: um segmento por biblioteca/sub-rotina Tm tamanhos diferentes; Tm um nome; So uma faixa contgua de endereos indo de 0 at N-1

Os segmentos:

Tabela de Segmentos
Os endereos lgicos passam a ser representados por uma dupla:
o

(nome segmento, deslocamento)

H necessidade de mapear os endereos bidimensionais em um espao linear fsico.


o

Tabela de segmentos!

A tabela associa a um nmero de segmento um DESCRITOR, que inclui:


o o

Seu endereo de base; Seu limite (tamanho)

Tabela de Segmentos
Trata-se de uma estrutura muito parecida tabela de pginas Com um campo extra

Diferena tabela segmentos e paginas


A tabela de segmentos contm dois campos
o o

Base/limite Endereo de quadro.

A tabela de pginas contm um campo Com segmentos, o campo base somado (aritmeticamente) ao deslocamento para obter o endereo fsico.
o

Campo base deve incluir y bits (y = comprimento do endereo fsico)

Com pginas, o deslocamento concatenado ao nmero de quadro para obter o endereo fsico.
o

Campo endereo de quadro usa q < y bits

Compartilhamento e proteo dos segmentos


O que foi dito de pginas se aplica a segmentos Cada processo dispe de sua tabela de segmentos. Na tabela de segmentos se encontram bits de segurana (direitos de acesso RWX) e/ou de proteo. Segmentos de texto so de somente leitura (R) e podem ser compartilhados. Segmentos de variveis locais no sero compartilhado

Alocao de Memria
preciso de memria para hospedar os segmentos. Os segmentos tm tamanho varivel
o o

As pginas tm tamanho igual. a mesma situao como no caso de particionamento com tamanho varivel. Gerenciar uma lista de blocos disponveis (lacunas)

Soluo:
o o

Problema com essa soluo:


Fragmentao externa quando no h lacuna onde cabe um segmento. o Depende do tamanho do segmento

Segmentao com Paginao


Mescla-se os dois procedimentos:
O endereo lgico considerado como endereo (seletor, deslocamento) para acessar um segmento. o Com a tabela de segmentos, h traduo desse endereo lgico em um endereo linear. o O endereo linear traduzido em endereo fsico atravs da paginao
o

Pode haver mltiplos nveis de paginao O Hardware deve dar suporte a esses mecanismos de traduo

Mecanismo de traduo de endereos

MEMRIA FSICA

Consideraes sobre Segmentao


Segmentao = virtualizao de vrios espaos lgicos de endereamento.
o

Usos associados a uma semntica (!= pgina).

Seu tamanho varivel implica numa estrutura mais complexa para seu uso
o

Tabela de segmentos.

Em geral, segmentao usada junto com paginao


o

Possibilita um mecanismo alto-nvel para o usurio, junto com o mecanismo mais automtico de paginao. o Resolve o problema de se ter grandes segmentos (maiores do que a RAM).

Das könnte Ihnen auch gefallen