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

Como alocar memria?

Simples
Contgua

Gerncia de Memria:
Paginao

Particionada
Fixa/dinmica

Alocao
Paginada

Marcelo Johann
No-contgua

Segmentada
Segmentada
com paginao

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Particionamento

Plano da aula

Cada processo deve ter um espao de


endereamento contguo.
O Sis. Op. aloca parties de tamanho fixo:

Memria paginada

Aula 14b : Slide 2

Pgina, quadro

determinado uma vez por todas;


Adaptado ao tamanho do processo.

Tabela de pginas

Pode haver problemas de disperdcio:

Mapeamento

Fragmentao interna
Fragmentao externa

Problemas e solues com paginao.

Mecanismos de compactao existem


Algoritmo buddy do Linux.

O swap de processos ajuda a recuperar memria.


INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 3

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Problemas com particionamento

Pgina (page) & Quadro (frame)

Os mecanismos de alocao por partio sofrem de


fragmentao

Define-se:

Nem a compactao suficiente.

Na verdade, o espao de endereamento lgico


deve ser contguo. O espao fsico no precisa slo.
A funo de mapeamento dever iludir o processo para lhe
fornecer um espao contguo.

Isso feito atravs da noo de pgina

Uma pgina:
uma partio da memria lgica, porm de tamanho menor do
que necessrio ao processo (e.g. 4 kB);
Mais de uma pgina sero alocadas a um processo para
implementar seu espao de endereamento.

Um quadro ou moldura (frame):


uma partio da memria fsica.
Em geral do mesmo tamanho da pgina.

O Sis. Op. deve mapear as pginas para os quadros.


Uma pgina pode ser mapeada em qualquer quadro
disponvel.

Segmentao tambm serve!

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 4

Aula 14b : Slide 5

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 6

Associao Pginas / Quadros

Como fazer o mapeamento (1)?


Memria

PROCESSO

Quadro 1
Quadro 2
Quadro 3
Quadro 4
Quadro 5
Quadro 6
Quadro
Quadro m-1
Quadro m

Pgina 1
Pgina 2
Pgina 3
Pgina 4
Pgina (n-1)
Pgina n

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 7

O mapeamento se faz atravs de um clculo relativo


ao endereo lgico acessado pelo processo.
O endereo lgico, de x bits, decomposto em
Um nmero de pgina (p bits)
Tem-se 2p pginas

Um deslocamento (x-p bits)


x-p define o nmero de endereos possveis na pgina!
Cada pgina tem um tamanho igual a 2x-p endereos

x bits
0010101001011 01101110110111011101110101010
p bits
x-p bits
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 8

Como fazer o mapeamento (2)?

Como fazer o mapeamento (3)?

O endereo fsico, de y bits, decomposto em

O mapeamento se faz atravs do uso de uma tabela


de associao nmero da pgina / nmero do
quadro.
a TABELA DE PGINAS
q bits

Um nmero de quadro (q bits)


Tem-se 2q quadros
Em geral q<p, mas x-p = y-q

Um deslocamento (y-q bits)

y bits
1110101111011 01101110110111011101110101010
q bits
y-q bits
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 9

Uso da tabela de pginas

00000000 1110101011111
00000001 1110101001011
p bits q bits
2p Linhas
(1 por pgina) 0010101001011 1110101111011

11111111

0000101001011

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 10

Alguns clculos

x bits

Desse mecanismo, deduz-se que

0010101001011 01101110110111011101110101010
x-p bits

x p = y q = tamanho de uma pgina/quadro (em termos de


comprimento)!

y define o tamanho do endereo na memria (RAM) fsica

p bits

E.g. y = 32 (bits)

x escolhido pelo projeto de Sis. Op.

q bits
0010101001011
q bits

1110101111011

p e q condicionam o tamanho da tabela de pginas:

1110101111011 01101110110111011101110101010
q bits
y-q bits
y bits
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

2x = tamanho do espao de endereamento lgico!

Aula 14b : Slide 11

2p = nmero de pginas = nmero de linhas (entradas) na tabela.


Cada linha ocupa q bits.
Tamanho total da tabela: 2pq bits.

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 12

Alguns valores para fixar as idias

16 bits

Endereos lgicos de 16 bits (x=16)

0110

endereos lgicos de 0 at 216 = 64 K


Palavra = 1 Byte => 64 KB de memria lgica.

32 KB de RAM fsica

4 bits

110111010101

Pginas e quadros de 4 KB

12 bits (16-4)

001
101
100

32 KB = 215 Bytes. (y = 15).

3 bits

010

Tem-se 64 KB / 4 KB = 16 pginas.
Precisa-se de p=4 bits para enderear as pginas.

Tem-se 32 KB / 4 KB = 8 quadros.
Precisa-se de q=3 bits para enderear os quadros.
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Uso da tabela de pginas

Aula 14b : Slide 13

.
110
100 110111010101
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

15 bits
Aula 14b : Slide 14

Falta de pgina

Proteo de acesso & Compartilhamento

Via de regra, no tem quadro associado a toda


pgina!

Um processo pode apenas acessar a memria


endereada por suas pginas!

Tm menos quadros do que pginas


porque a memria fsica menor do que a lgica!
Vide exemplo anterior.

Algumas entradas na tabela de pginas no tm


nmero de quadro associado

No pode mexer na memria de outros processos.

Para otimizar o sistema, so usados bits de


segurana na tabela:
Pgina em leitura, escrita ou para execuo.
Bit de sujeira.
Bit de validade.

Bit de validade

A pgina facilita o compartilhamento de memria


Quando uma pgina requisitada que no tem
quadro associado, h falta de pgina (page fault).
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 15

Cdigo executvel, memria (cf. threads)

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Problema com pginas (1)

Problema com pginas (2)

2x-p = 2y-q = tamanho de uma pgina (em bits).


Tamanho da tabela de pginas = 2pq bits
Quanto maior a pgina, menor q; e menor q, menor o
tamanho da tabela.
Problema: no se quer pginas muito grandes para
no voltar a ter um mecanismo de parties fixas!
Por isso, se costuma usar pginas bem menores do
que a RAM (cf. 4 Kbytes, 8 Kbytes)
Por isso, o nmero de pginas explode!

Como decidir o tamanho da tabela?

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 17

Aula 14b : Slide 16

Fixar um nmero mximo de pginas


Provoca fragmentao interna na tabela, pois nem toda
ela ser usada.
Limita o tamanho mximo de um processo.

Deixar a tabela evoluir dinamicamente


Ou com alocao contgua (e com fragmentao
externa)
Ou com paginao (da tabela de pginas!).

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 18

Paginao multi-nvel

Solues com pginas


Usa-se mecanismos de paginao multi-nveis.
O endereo lgico se decompe em mais campos.
Cada entrada no diretrio de tabelas de pginas o
endereo de uma tabela de pgina.
O nvel seguinte possibilita achar a pgina na tabela
apontada.

0010101001011 10101010 0010100

0010101001011

p bits
Tabela de
pginas

0010101001011 1101110101010 1101110101010


p1 bits
p2 bits
x-p1-p2 bits

1o nvel
(diretrio)

2o nvel
(pgina)

Aula 14b : Slide 19

10 bits

1110101111011 0010101001011
y-q bits
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 20

Interao HW/SW e tabelas de pginas:


o caso da INTEL 8086

Exemplo de uso com 2 nveis


1111111110

q bits

deslocamento

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

0000000001

Diretrio
(nvel 2)

Diretrio de
Tabelas
(nvel 1)

001010011111

Mecanismo com dois nveis.


Endereo lgico: 4 GB (32 bits)
Pginas de 4 KB
Nmero total de 4 GB/4 KB = 1 Mega-pginas.

10 bits

Suporte em HW para:

1023
1022
1023

1
0

1 diretrio de pginas (1K entradas de 4 Bytes)


1 tabela de pginas (1K entradas de 4 Bytes)

12 bits

0010101001
10 bits

1010100010
10 bits

001010011111
12 bits
Tabela de
pginas

001010011111

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 21

001010011111
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 22

Exemplos de questes

Concluso sobre a paginao

No caso da INTEL 8086, qual ser o


tamanho (em Bytes) de uma tabela de
pginas (2o nvel)?

a soluo, hoje, universalmente empregada em


Sistemas Operacionais Linux, Windows, Unix, MacOS

Calcular o nmero de entradas na tabela;


Calcular o nmero de bits necessrios para obter
o endereo fsico (junto com o deslocamento de
12 bits);

O grande problema definir o meio-termo entre


tamanho da pgina/nmero de pginas a gerenciar.
A tabela de pginas deve ficar pequena.

O hardware ajuda. A interao exata HW/Sist. Op.


auxilia a otimizao do desempenho
Ser o assunto da prxima aula!

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 23

INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2

Aula 14b : Slide 24

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