Você está na página 1de 24

Gerenciamento de Memória

Sistemas • Recurso importante;


Operacionais • Tendência atual do software
• Lei de Parkinson: “Os programas se expandem para
preencher a memória disponível para
eles” (adaptação);
Profa. Dra. Kalinka Regina Lucas Jaquie Castelo Branco
kalinka@icmc.usp.br • Hierarquia de memória:
• Cache;
• Principal;
• Disco;
Apresentação baseada nos slides
2
do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F.
Martimiano e nas transparências fornecidas no site de compra do livro
“Sistemas Operacionais Modernos”

Gerenciamento de Memória
Gerenciamento de Memória Hierarquia de Memória
• Idealmente os programadores querem uma memória que seja: • Cache
• Grande • Pequena quantidade
• Rápida
• k bytes


Não Volátil
Baixo custo • Alto custo por byte • Disco
• Muito rápida • Grande quantidade –
• Infelizmente a tecnologia atual não comporta tais memórias • Volátil • G bytes
• Baixo custo por byte
• A maioria dos computadores utiliza Hierarquia de Memórias que • Lenta
combina: • Memória Principal
• Uma pequena quantidade de memória cache, volátil, muito rápida e de alto custo • Quantidade intermediária • Não volátil
• Uma grande memória principal (RAM), volátil, com centenas de MB ou poucos GB, • M bytes
de velocidade e custo médios
• Uma memória secundária, não volátil em disco, com gigabytes (ou terabytes), • Custo médio por byte
velocidade e custo baixos • Velocidade média
3 4
• Volátil

Gerenciamento de Memória
Hierarquia de Memória
❙ Cabe ao Gerenciador de Memória gerenciar a
hierarquia de memória

❙ Controla as partes da memória que estão em uso


e quais não estão, de forma a:
❙ alocar memória aos processos, quando estes
precisarem;
❙ liberar memória quando um processo termina;
e
❙ tratar do problema do swapping (quando a
memória é insuficiente).
5 6

1
Gerenciamento de Memória Gerenciamento Básico de Memória
• Para cada tipo de memória: • Sistemas de Gerenciamento de Memória, podem
• Gerenciar espaços livres/ocupados; ser divididos em 2 classes:
• Alocar processos/dados na memória; • Sistemas que, durante a execução levam e
• Localizar dado. trazem processos entre a memória principal e
• Entre os níveis de memória, deve-se: o disco (troca de processos e paginação)
• Gerenciar as trocas. • Sistemas mais simples, que não fazem troca de
• Gerenciador de memória: processos e nem paginação
• Responsável por alocar e liberar espaços na memória
para os processos em execução;
• Responsável por gerenciar chaveamento entre a
memória principal e o disco, e memória principal e 7 8
memória cache;

Gerenciamento Básico de Memória Gerenciamento Básico de Memória


Monoprogramação sem trocas de processos ou Paginação Monoprogramação sem trocas de processos ou Paginação
Monoprogramação sem trocas de processos ou
Paginação Gerenciamento mais simples

❙ Sistemas Mono-usuários: gerência de memória é


bem simples, pois toda a memória é alocada à
próxima tarefa, incluindo a área do S.O.

❙ Erros de execução podem vir a danificar o S.O.

❙ Neste caso, a destruição do S.O. é um pequeno


inconveniente, resolvido pelo recarregamento do
mesmo.
9 Três esquemas simples de organização de memória 10
- Um sistema operacional com um processo de usuário

Modelagem da Multiprogramação
Multiprogramação com partições Fixas
• Modelo de Multiprogramação
❙ Sistemas Monoprogramados: raramente usados • Múltiplos processos sendo executados;
atualmente. • Eficiência de CPU;

❙ Sistemas modernos: permitem multiprogramação


❙ A maneira mais comum de realizar a multiprogramação é
dividir simplesmente a memória em n partições
(provavelmente de tamanhos diferentes).
❙ Esta divisão pode ser feita de maneira manual, quando o
sistema é inicializado
❙ Ao chegar, um job, pode ser colocado em uma fila de
entrada associada à menor partição, grande o suficiente A utilização da CPU como uma
11 função do número de processos na 12
para armazená-lo memória.
Necessidade de Particionamento da
Memória Principal.

2
Modelagem da Multiprogramação Gerenciamento de Memória
O uso da Multiprogramação pode melhorar a utilização da
CPU • Multiprogramação à Vários processos na memória:
Considerando a utilização da CPU de modo probabilístico: • Proteção: Como proteger os processos uns dos outros
• Suponha que um processo gaste uma fração p de seu e o kernel de todos os processos?
tempo esperando pela finalização de sua solicitação de E/S • Necessidade de realocação: Como tratar a realocação?
• Com n processos simultâneos na memória, a probabilidade O processo pode estar em diferentes posições da
de todos os n processos estarem esperando por E/S
(situação em que a CPU está ociosa) é pn memória.
• Todas as soluções envolvem equipar a CPU com um
• A utilização da CPU é dada pela fórmula: hardware especial à MMU (memory management
utilização da CPU = 1 - pn unit).

13 14

Gerenciamento de Memória Relocação e Proteção


• Pode não ter certeza de onde o programa será
• MMU (do inglês Memory Management Unit) é carregado na memória
um dispositivo de hardware que transforma
• As localizações de endereços de localização das variáveis e do
endereços virtuais em endereços físicos. código das rotinas não podem ser absolutos
• Na MMU, o valor no registro de relocação é • Deve-se manter um programa fora das partições de outros
adicionado a todo o endereço lógico gerado por processos
um processo do utilizador na altura de ser
enviado para a memória. O programa do • Uso de valores de base e limite
utilizador manipula endereços lógicos; ele nunca • Os endereços das localizações são somados a um valor de
vê endereços físicos reais. base para mapear um endereço físico
• Valores de localizações maiores que um valor limite são
VAMOS VOLTAR NISSO MAIS A 15 considerados erro 16
FRENTE OK?

Gerenciamento de Memória Gerenciamento de Memória


• Realocação: • Solução para ambos os problemas:
• Quando um programa é linkado (programa principal + • 2 registradores à base e limite
rotinas do usuário + rotinas da biblioteca à • Quando um processo é escalonado o registrador-
executável) o linker deve saber em que endereço o base é carregado com o endereço de início da
programa irá iniciar na memória; partição e o registrador-limite com o tamanho da
partição;
• Nesse caso, para que o linker não escreva em um local • O registrador-base torna impossível a um processo
indevido, como por exemplo na área do SO (100 uma remissão a qualquer parte de memória abaixo
primeiros endereços), é preciso de realocação: de si mesmo.
• #100 + Δ à que depende da partição!!! • Automaticamente, a MMU adiciona o conteúdo do
• Proteção: registrador-base a cada endereço de memória
• Com várias partições e programas ocupando gerado;
diferentes espaços da memória é possível acontecer 17 • Endereços são comparados com o registrador- 18
um acesso indevido. limite para prevenir acessos indevidos.

3
Gerenciamento de Memória Gerenciamento de Memória
Registradores base e limite
Partições/Alocação
• Particionamento da memória pode ser realizado
b) MMU mais de duas maneiras:
sofisticada à • Partições fixas (ou alocação estática);
dois pares de • Partições variáveis (ou alocação dinâmica);
registradores: • Partições Fixas:
segmento de
• Tamanho e número de partições são fixos (estáticos);
dados usa um
par separado; • Não é atrativo, porque partições fixas tendem a
desperdiçar memória (Qualquer espaço não utilizado é
§ MMU literalmente perdido)
modernas
• Mais simples.
têm mais pares
20
de registradores.
19

Gerenciamento de Memória Multiprogramação com partições Fixas


Partições Fixas
• Partições Fixas:
• Filas múltiplas:
• Problema: filas não balanceadas;
• Fila única:
• Facilita gerenciamento;
• Implementação com Lista:
• Melhor utilização da memória, pois procura o melhor
processo para a partição considerada;
• Diferentes algoritmos podem ser considerados para alocar
os processos. • Partições de memória fixa
21 22
• fila separada para cada partição
• uma única fila de entrada

Gerenciamento de Memória Gerenciamento de Memória


Partições Fixas Partições Variáveis
• Partições Fixas: problemas com fragmentação: • Partições Variáveis:
• Interna: desperdício dentro da área alocada para um • Tamanho e número de partições variam;
processo; • Otimiza a utilização da memória, mas complica a
alocação e liberação da memória;
• Ex.: processo de tamanho 40K ocupando uma partição de 50k;
• Partições são alocadas dinamicamente;
• Externa: desperdício fora da área alocada para um
processo; • SO mantém na memória uma lista com os espaços
livres;
• Duas partições livres: PL1 com 25k e PL2 com 100k, e um processo
de tamanho 110K para ser executado; • Menor fragmentação interna e grande fragmentação
• Livre: 125K, mas o processo não pode ser executado;
externa;
• Solução: Compactação;

23 24

4
Gerenciamento de Memória Gerenciamento de Memória
Partições Variáveis
• Minimizar espaço de memória inutilizados:
• Partições Variáveis: Tempo
• Compactação: necessária para recuperar os espaços
perdidos por fragmentação; no entanto, muito custosa
para a CPU;
C C C C C
• Técnicas para alocação dinâmica de memória:
B B B B • Bitmaps;
A
A A A • Listas Encadeadas.
D D D
SO SO SO SO SO SO SO
(a) (b) (c) (d) (e) (f) (g) 25 26

Memória livre

Gerenciamento de Memória Gerenciamento de Memória


• Técnica com Bitmaps:
• Memória é dividida em unidades de alocação em • Técnica com Bitmaps:
kbytes; 8 16
• Cada unidade corresponde a um bit no bitmap: Memória A B C ...
0 à livre
1 à ocupado
• Tamanho do bitmap depende do tamanho da unidade 11111000
e do tamanho da memória; Bitmap 11111111
11001111
• Ex.: 11111000
• unidades de alocação pequenas à bitmap grande; ...
• unidades de alocação grandes à perda de espaço.
27 28
Memória ocupada
Memória livre

Gerenciamento de Memória com Listas encadeadas


Gerenciamento de Memória Outra maneira de gerenciar memória é manter uma lista
encadeada de segmentos de memória alocados e segmentos
disponíveis
• Técnica com Listas Encadeadas:
Cada elemento desta lista especifica:
• Uma lista para os espaços vazios e outra para os • um segmento disponível (H), ou alocado a um processo (P),
espaços cheios, ou uma lista para ambos!
• o endereço onde se inicia este segmento
“espaço ≡ segmento” • e um ponteiro para o próximo elemento
começa
tamanho 5
com zero

P 0 5 H 5 3 P 8 6 ....... H 29 3 x

Processo Hole tamanho 3


(espaço vazio) 29 30
começa
com 5

5
Gerenciamento de memória com Mapas de Bits
Gerenciamento de Memória

• Algoritmos de Alocação à quando um novo


processo é criado:
• FIRST FIT
• 1º segmento é usado;
• Rápido, mas pode desperdiçar memória por fragmentação.
• NEXT FIT
(a) Uma parte da memória com 5 processos e 3 buracos • 1º segmento é usado;
• As regiões em branco (1 no bitmap) marcam as unidades já
alocadas • Mas na próxima alocação inicia busca do ponto que parou
• As regiões sombreadas (0 no bitmap) marcam unidades anteriormente;
desocupadas • Possui desempenho inferior.
(b) O Bitmap correspondente 31 32
(c) A mesma informação como uma lista encadeada

Gerenciamento de Memória Gerenciamento de Memória


• BEST FIT • Cada algoritmo pode manter listas separadas
• Procura na lista toda e aloca o espaço que mais convém;
• Menor fragmentação;
para processos e para espaços livres:
• Mais lento. • Vantagem:
• WORST FIT • Aumenta desempenho;
• Aloca o maior espaço disponível. • Desvantagens:
• QUICK FIT • Aumenta complexidade quando espaço de memória é
• Mantém listas separadas para os espaços mais requisitados. liberado – gerenciamento das listas;
• Fragmentação.

33 34

Gerenciamento de Memória Gerenciamento de Memória


Alocação de segmentos livres
Alocação de segmentos livres

❙ Principais Consequências

❙A melhor escolha: deixa o menor resto, porém após um longo


processamento poderá deixar “buracos” muito pequenos para
serem úteis.
❙A pior escolha: deixa o maior espaço após cada alocação, mas
tende a espalhar as porções não utilizadas sobre áreas não
contínuas de memória e, portanto, pode tornar difícil alocar
grandes jobs.

❙A primeira escolha: tende a ser um meio termo entre35a 36


melhor e a pior escolha, com a característica adicional de fazer
com que os espaços vazios migrem para o final da memória.
Áreas livres iniciais Melhor Escolha Pior Escolha Primeira Escolha

6
Gerenciamento de Memória Gerenciamento de Memória
O que fazer quando não existe espaço suficiente para • Swapping
todos os processos ativos?
• Chaveamento de processos inteiros entre a
memória principal e o disco;
• Swapping
• Chaveamento de processos inteiros entre a memória principal e o • Transferência do processo da memória
disco. principal para a memória secundária
(normalmente o disco): Swap-out;
• Overlays – Memória Virtual
• Programa de são divididos em pedaços menores • Transferência do processo da memória
• Pedaços são chaveados entre a memória principal e o disco. secundária para a memória principal: Swap-in;
• Pode ser utilizado tanto com partições fixas
37 38
quanto variáveis.

Gerenciamento de Memória Gerenciamento de Memória


Memória Virtual (MV)
• Programas maiores que a memória eram dividos
em pedaços menores chamados de overlays – • Programas maiores que a memória eram
programador; divididos em pedaços menores chamados
• Desvantagem: custo muito alto. overlays;
• Programador define áreas de overlay;
• Memória Virtual
• Vantagem: expansão da memória principal;
• Sistema operacional é responsável por dividir
o programa em overlays; • Desvantagem: custo muito alto.
• Sistema operacional realiza o chaveamento 39 40
desses pedaços entre a memória e o disco.

Gerenciamento de Memória
Gerenciamento de Memória
Memória Virtual (MV)
Memória Virtual (MV)
• Sistema operacional é responsável por dividir
o programa em overlays; • Com MV existe a sensação de se ter mais
• Sistema operacional realiza o chaveamento memória principal do que realmente se
desses pedaços entre a memória principal e o tem;
disco; • O hardware muitas vezes implementa
• Década de 60: ATLAS à primeiro sistema com funções da gerência de memória virtual:
MV (Universidade Manchester - Reino Unido); • SO deve considerar características da
• 1972: sistema comercial: IBM System/370. arquitetura.
41 42

7
Gerenciamento de Memória
Memória Virtual Gerenciamento de
Memória Memória Virtual
• Espaço de Endereçamento Virtual de um processo é
• Um processo em Memória Virtual faz referência
formado por todos os endereços virtuais que esse
a endereços virtuais e não a endereço reais de
processo pode gerar;
memória RAM;
• Espaço de Endereçamento Físico de um processo é
• No momento da execução de uma instrução, o
formado por todos os endereços físicos/reais aceitos
endereço virtual é traduzido para um endereço
pela memória principal (RAM).
real, pois a CPU manipula apenas endereços
reais da memória RAM à MAPEAMENTO.

43 44

Gerenciamento de
Memória Mapeamento MV Gerenciamento de Memória
Memória Virtual
• Endereços virtuais formam um espaço de
• MMU: Realiza mapeamento dos endereços endereçamento virtual;
lógicos (usados pelos processos) para endereços
físicos;
• Mapeamento entre endereços reais e
virtuais é realizado pela MMU;
Endereço
• Técnicas de MV:
Endereço
Lógico Físico Memória
• Paginação;
Processador MMU
Principal • Segmentação.
Unidade de Processamento 45 46

Gerenciamento de Memória Gerenciamento de Memória


Memória Virtual Memória Virtual - Paginação
• Paginação: • Memória Principal e Memória Secundária são
• Blocos de tamanho fixo chamados de páginas; organizadas em páginas de mesmo tamanho;
• SO mantém uma lista de todas as páginas;
• Página é a unidade básica para transferência de
• O espaço de endereçamento virtual é dividido em
páginas virtuais. informação;
• Segmentação: • Tabela de páginas: responsável por armazenar
• Blocos de tamanho arbitrário chamados informações sobre as páginas virtuais:
segmentos; • argumento de entrada à número da página virtual;
• SO mantém uma lista de todos os segmentos; • argumento de saída (resultado) à número da página real
• O espaço de endereçamento virtual é dividido em (ou moldura de página - page frame).
segmentos virtuais. 47 48

8
Gerenciamento de Memória
Gerenciamento de Memória
Memória Virtual - Paginação
E sp a ço d e Memória Virtual
• Exemplo:
e n d e re ça m e n to
virtu a l d e A

Ta b e la d e
E n d e re ço virtu a l 1 m a p e a m e n to

• Páginas de 4Kb
de A

.
.
. • 4096 bytes/endereços (0-4095);
M e m ó ria Prin cip a l

• 64Kb de espaço virtual;


• 32Kb de espaço real;
Pro ce ss o A

E sp a ço d e
e n d e re ça m e n to
virtu a l d e B
• Temos:
E n d e re ço virtu a l 1
Ta b e la d e
m a p e a m e n to
de B
• 16 páginas virtuais;
.
.
• 8 páginas reais;
.
49 50

Pro ce ss o B

Gerenciamento de Memória Gerenciamento de Memória


Memória Virtual Memória Virtual - Paginação
Espaço Virtual X Tamanho da Página • Problemas:
Espaço de Tamanho da Número de Número de • Fragmentação interna;
Endereçamento página páginas entradas nas • Definição do tamanho das páginas;
Virtual tabela de • Geralmente a MMU que define e não o SO;
páginas • Páginas maiores: leitura mais eficiente, tabela menor, mas
232 endereços 512 bytes 223 223 maior fragmentação interna;
• Páginas menores: leitura menos eficiente, tabela maior, mas
220 220 menor fragmentação interna;
232 endereços 4 kbytes
• Sugestão: 1k a 8k;

264 endereços 4 kbytes 252 252


• Mapa de bits ou uma lista encadeada com as
páginas livres.
51 52
264 endereços 64 kbytes 248 248

Gerenciamento de Memória Gerenciamento de Memória


Endereço Virtual à Endereço Real Memória Virtual - Paginação
Mapeamento da MMU

§ Página virtual mapeada para § Operação interna de


página real; uma MMU com 16
páginas de 4Kb;
§ Endereço virtual de 16
bits: 4 bits para nº de
páginas e 12 bits para
deslocamento;
§ Com 4 bits é possível
ter 16 páginas virtuais
(24);
§ MMU realiza o mapeamento § 12 bits para
53 deslocamento 54
é possível endereçar os
4096 bytes.

9
Gerenciamento de Memória
Mapeamento da MMU
Gerência de Memória
Memória Virtual - Paginação
§ Número da página Memória Virtual - Paginação
virtual é usado como
índice; • Algumas questões que surgem com
§ Se página está na relação à Paginação:
memória RAM, então o • Onde armazenar a tabela de páginas?
nº da página real (110)
é copiado para os três
bits mais significativos
do endereço de saída
índice
(real), juntamente com
o deslocamento sem
alteração;
§ Endereço real com 15 55 56
bits é enviado à
memória.

Gerência de Memória Gerência de Memória


Memória Virtual - Paginação Memória Virtual - Paginação
• A Tabela de páginas pode ser armazenada de três diferentes • Em memória cache da MMU
maneiras: • Também conhecida como TLB (Translation Lookside Buffer –
• Em conjunto de registradores, se a memória for pequena buffer de tradução dinâmica);
• Vantagem: rápido
• Hardware especial para mapear endereços virtuais para
• Desvantagem: precisa carregar toda a tabela nos registradores a
cada chaveamento de contexto.
endereços reais sem ter que passar pela tabela de páginas na
memória principal;
• Na própria memória RAM – MMU gerencia utilizando dois
registradores: • Melhora o desempenho.
• Registrador Base da tabela de páginas (PTBR – page table base
register): indica o endereço físico de memória onde a tabela está
alocada
• Registrador Limite da tabela de páginas (PTBR – page table limit
register): indica o número de entradas da tabela (número de
páginas)
• Precisa de dois acessos à memória: um para acessar a tabela de 57 58
páginas e outro para acessar a posição de memória.

Gerências de Memória Gerências de Memória


Memória Virtual - Paginação Memória Virtual - Paginação
• Projeto mais simples: • Tabela de páginas totalmente na memória.
• Uma única tabela de páginas que consista em um vetor de • O Hardware necessário resume-se a um único registrador
registradores rápidos em harware (um registrador para cada (que aponta para o início da tabela de páginas)
entrada);
• Desvantagem:
• Quando o processo estiver para ser executado, o SO carregará
• A execução de uma instrução implicará em pelo menos dois
esses registradores a partir de uma cópia da tabela de páginas
acessos à memória
desse processo mantida na memória;
• O primeiro para acessar a tabela de páginas (e descobrir o endereço
• Vantagem: Não requer nenhum acesso à memória durante a físico desta instrução)
tradução
• O segundo para buscar a respectiva instrução na memória. Isso sem
• Desvantagens: falar nos operandos da instrução que podem estar em memória.
• Caro!
• Ter que carregar toda a tabela de páginas em cada troca de
contexto. 59 60

10
Gerências de Memória Gerências de Memória
Memória Virtual - Paginação Memória Virtual - Paginação
Tabela de Página Multinível • 1o. nível com 1024
• O objetivo é evitar manter toda a tabela de páginas na entradas
memória durante todo o tempo • Cada uma dessas
• Apresenta-se como uma solução para o dimensionamento da entradas representa
4 MB
tabela de páginas
• 4 GB / 1024
• Uso de dois apontadores e um deslocamento
• Exemplo: Tabela de dois níveis
• O endereço de 32 bits de endereço divido em 3 campos
• PT1 [10 bits] : indexa o primeiro nível da tabela
• PT2 [10 bits] : indexa o segundo nível da tabela
• Deslocamento [12 bits]: => paginas de 4 KB
61 62

Gerências de Memória Gerências de Memória


Memória Virtual - Paginação Memória Virtual - Paginação
• No exemplo anterior: • Quando um endereço virtual chega à MMU, ela primeiro
• Suponha que um processo utilize apenas 12 MB do seu espaço extrai o campo PT1 e o utiliza como índice da tabela de
páginas do nível 1
de endereços virtuais
• A entrada da tabela de páginas de nível 1 aponta para a tabela
• 4MB da base da memória para código de programa
de páginas do nível 2.
• Outros 4 MB para dados
• Então PT2 é usado como índice nesta segunda tabela para
• 4 MB do topo da memória para pilha localizar a entrada correspondente à pagina virtual
• Portanto: • Esta entrada indicará em qual moldura física encontra-se o
• A entrada 0 da tabela de nivel 1 aponta para a tabela de páginas endereço a ser acessado
de nível 2 relativa ao código do programa • No exemplo:
• A entrada 1 da tabela de nivel 1 aponta para a tabela de páginas • Suponha que um processo utilize apenas 12 MB do seu espaço de
de nível 2 relativa aos dados do processo endereços virtuais
• A entrada 1023 da tabela de nivel 1 aponta para a tabela de 63
• A entrada 0 da tabela de nivel 1 aponta para a tabela de páginas 64
páginas de nível 2 relativa à pilha do processo de nível 2 relativa ao código do programa

Gerências de Memória Gerências de Memória


Memória Virtual - Paginação Memória Virtual - Paginação

• PT1: Entrada 1 da tabela do 1o nível


• 2o bloco de 4M (4M a 8M de memória virtual)
• PT2: Entrada 3 da tabela do 2o nível
• Esta entrada indica em qual moldura encontra-se esta página
• O endereço físico do primeiro byte dessa moldura é somado ao
deslocamento
• Considere o endereço virtual 0x00403004(4206596) • Supondo a página encontre-se na moldura 1 (4k a 8k-1), o endereço
• Qual será o endereço físico correspondente? físico correspondente será 4096 + 4 = 4100
65 66
• OU:

11
Gerências de Memória Gerências de Memória
Memória Virtual - Paginação Memória Virtual - Paginação
• Para entender as vantagens, considere o exemplo anterior • Paginação de três níveis
(endereço virtual de 32 bits – página de 4kB) • Típicos de arquiteturas de processadores de 64 bits
• Usando tabela de páginas tradicional:
• 1 tabela de 220 entradas (1 M entradas)
• Usando tabela de páginas em 2 níveis
• 4 tabelas de 210 entradas cada (1 K entradas)
• Se cada entrada da tab. de páginas ocupa 16 bits
• primeiro caso: 220 x 24 = 16 Mbits p/ armazenar a tabela de
páginas
• segundo caso: 4 x 210 x 24 = 64 Kbits p/ armazenar a tabela de 2
níveis
67 68

Gerências de Memória Gerências de Memória


Memória Virtual - Paginação Memória Virtual - Paginação
• Espaço de endereçamento virtual pode ser exageradamente Tabelas de Páginas Invertidas
grande em máquinas de 64 bits. • Uma entrada por moldura de memória real
• Páginas de 4KB • Cada entrada na tabela informa
• 2 52 entradas na tabela • Par: (PID, # página virtual) alocado naquela moldura
• Se cada entrada ocupa 8 B => tabela de ~30.000.000 GB
• Entretanto
• O armazenamento da tabela torna-se viável se a mesma for
• Tradução de virtual/físico mais complicada
invertida, isto é, ter o tamanho da quantidade de molduras
• Quando o processo n endereça a página p
(memória real) e não da quantidade de páginas (memória
• p não serve de índice da tabela
virtual)
• Toda a tabela deve ser pesquisada em busca de uma entrada (p,n)
• Se memória real é de 256 Mbytes , e páginas de 4 KB:
• Solução muito lenta
• Tem-se 65536 entradas
• A busca é feita para toda referência à memória
69 70

Gerências de Memória Gerências de Memória


Memória Virtual - Paginação Memória Virtual - Paginação
• Aceleração pode ser obtida
• TLB para páginas mais referenciadas
• Indexar a tabela por hash
• Uma função hash que recebe o número da página e
retorna um entre N valores possíveis, onde N é a
quantidade de molduras (memória instalada).
• Páginas com mesmo hash serão encadeadas em
uma lista
• Cada entrada da tabela armazena um par (página/
71
quadro) 72

12
Gerências de Memória Gerências de Memória
Memória Virtual - Paginação Memória Virtual - Paginação
TLB – Translation Lookaside Buffer
• Como diminuir o número de referências à MP introduzido
pelo mecanismo de paginação?
• Os programas tendem a fazer um grande número de
referências a um mesmo pequeno conjunto de páginas
virtuais
• Princípio da localidade temporal e espacial
• Solução: equipar a MMU com uma TLB
• Também chamada de Memória Associativa
• Dispositivo de hardware implementado com um reduzido
número de entradas
73 • Contém algumas entradas (linhas) da tabela de páginas do 74
processo em execução

Gerências de Memória Gerência de Memória


Memória Virtual - Paginação Memória Virtual - Paginação

Exemplo de TLB
• Loop acessando pag. 19, 20, 21
75 • Dados principais: pag. 129, 130, 141 76
• Pilha: 860, 861
Memória associativa (TLB) - De 64 a 4096 entradas

Gerência de Memória Gerência de Memória


Memória Virtual - Paginação Memória Virtual - Paginação
HIT Ratio (Taxa de Sucesso) HIT Ratio (Taxa de Sucesso)
• Razão de referências à memória que podem ser satisfeitas a • Suponha: THit = 20ns ; TMiss= 39 ns; H.R. = 90%
partir da TLB Tempo médio de acesso = 0,9x20+0,1x39 = 21,9ns
• ↑Hit Ratio => ↑ performance
• Tempo de acesso com HIT (sucesso) à memória via TLB
THit = TTLB + TMEM
• Tempo de acesso com MISS (insucesso) à memória via TLB
TMiss = TTLB + TMEM + TMEM
• Tempo médio de acesso= hr . THit + (1-hr) . Tmiss
• hr é o Hit Ratio
77 78

13
Gerência de Memória
Gerenciamento de Memória
Memória Virtual - Paginação Memória Virtual - Paginação
• Algumas questões que surgem com • Estrutura de uma tabela de páginas: 32 bits (mais comum)
relação à Paginação:
Número da Moldura de Página
• Onde armazenar a tabela de páginas?
• Qual a estrutura de uma entrada na tabela de
páginas?
Identifica a página real;
Campo mais importante;

79 80

Gerenciamento de Memória Gerenciamento de Memória


Memória Virtual - Paginação Memória Virtual - Paginação
• Estrutura de uma tabela de páginas: 32 bits (mais comum) • Estrutura de uma tabela de páginas: 32 bits (mais comum)

Número da Moldura de Página Número da Moldura de Página

Bits de Proteção:
Indicam tipos de acessos permitidos:
Bit de Residência: 1 bit à 0 – leitura/escrita
Se valor igual 1, então entrada válida para uso; 1 – leitura
Se valor igual 0, então entrada inválida, pois 3 bits à 0 – Leitura
página virtual correspondente não está na memória; 1 – Escrita
2 - Execução
81 82

Gerenciamento de Memória Gerenciamento de Memória


Memória Virtual - Paginação Memória Virtual - Paginação
• Estrutura de uma tabela de páginas: 32 bits (mais comum) • Estrutura de uma tabela de páginas: 32 bits (mais comum)

Número da Moldura de Página Número da Moldura de Página

Bit de Modificação (Bit M):


Controla o uso da página; Bit de Referência (Bit R):
Se valor igual a 1, página foi escrita; Controla o uso da página;
página é copiada para o disco Auxilia o SO na escolha da página que deve deixar a MP (RAM);
Se valor igual a 0, página não foi modificada; Se valor igual a 1, página foi referenciada (leitura/escrita);
página não é copiada para o disco; Se valor igual a 0, página não referenciada;
83 84

14
Gerência de Memória
Gerenciamento de Memória
Memória Virtual - Paginação Memória Virtual - Paginação
• Estrutura de uma tabela de páginas: 32 bits (mais comum) • Algumas questões que surgem com
relação à Paginação:
Número da Moldura de Página
• Onde armazenar a tabela de páginas?
• Qual a estrutura de uma entrada na tabela de
páginas?
Bit de Cache: • Quantas páginas reais serão alocadas a um processo?
Necessário quando os dispositivos de entrada/saída
são mapeados na memória e não em um endereçamento
específico de E/S;

85 86

Gerenciamento de Memória Gerenciamento de Memória


Paginação - Alocação de Páginas Paginação - Alocação de Páginas
Quantas páginas reais serão alocadas a um Quantas páginas reais serão alocadas a um processo?
processo?
• Duas estratégias: • Alocação variável ou dinâmica: número máximo de
• Alocação fixa ou estática: cada processo tem um páginas reais alocadas ao processo varia durante sua
número máximo de páginas reais, definido quando o execução;
processo é criado;
• Vantagem: (i) processos com elevada taxa de paginação
• O limite pode ser igual para todos os processos;
podem ter seu limite de páginas reais ampliado; (ii)
• Vantagem: simplicidade; processos com baixa taxa de paginação podem ter seu limite
• Desvantagens: (i) número muito pequeno de páginas reais pode de páginas reais reduzido;
causar muita paginação; (ii) número muito grande de páginas
reais causa desperdício de memória principal. • Desvantagem: monitoramento constante.
87 88

Gerência de Memória
Gerenciamento de Memória
Memória Virtual - Paginação Paginação - Busca de Página
• Algumas questões que surgem com Políticas de busca determinam quando uma página deve
ser carregada para a memória.
relação à Paginação: • Paginação simples:
• Onde armazenar a tabela de páginas? • Todas as páginas virtuais do processo são carregadas para a
memória principal;
• Qual a estrutura de uma entrada na tabela de • Assim, sempre todas as páginas são válidas.
páginas? • Paginação por demanda (Demand Paging):
• Quantas páginas reais serão alocadas a um processo? • Apenas as páginas efetivamente acessadas pelo processo são
carregadas na memória principal;
• Quando uma página deve ser carregada para a • Quais páginas virtuais foram carregadas à Bit de controle (bit de
memória? residência);
• Página inválida.
• Paginação antecipada (Antecipatory Paging):
89 • Carrega para a memória principal, além da página referenciada, 90
outras páginas que podem ou não ser necessárias para o processo.

15
Gerência de Memória
Gerenciamento de Memória
Memória Virtual - Paginação Paginação - Busca de Página
• Algumas questões que surgem com
• Página inválida: MMU gera uma interrupção de
relação à Paginação: proteção e aciona o sistema operacional;
• Onde armazenar a tabela de páginas? • Se a página está fora do espaço de
• Qual a estrutura de uma entrada na tabela de endereçamento do processo, o processo é
páginas? abortado;
• Quantas páginas reais serão alocadas a um processo? • Se a página ainda não foi carregada na
• Quando uma página deve ser carregada para a memória principal, ocorre uma falta de página
memória? (page fault).
• Como trazer uma página para a memória?
91 92

Gerenciamento de Memória Gerenciamento de Memória


Paginação - Busca de Página Paginação - Busca de Página
• Falta de Página: • Após a leitura do disco:
• Processo é suspenso e seu descritor é inserido em • Tabela de páginas do processo é corrigida para indicar
uma fila especial – fila dos processos esperando uma que a página virtual agora está válida e está na página
página virtual; real alocada;
• Uma página real livre deve ser alocada; • Pager: carrega páginas especificas de um processo do disco
para a memória principal;
• A página virtual acessada deve ser localizada no disco;
• O descritor do processo é retirado da fila especial e
• Operação de leitura de disco, indicando o endereço da
colocado na fila do processador.
página virtual no disco e o endereço da página real
alocada.
93 94

Gerência de Memória
Gerenciamento de Memória
Memória Virtual - Paginação Paginação - Troca de Páginas
• Algumas questões que surgem com A liberação é feita por meio da troca de página.
relação à Paginação:
• Política de Substituição Local: páginas dos próprios
• Onde armazenar a tabela de páginas?
processos são utilizadas na troca;
• Qual a estrutura de uma entrada na tabela de
• Dificuldade: definir quantas páginas cada processo pode
páginas?
utilizar;
• Quantas páginas reais serão alocadas a um processo?
• Política de Substituição Global: páginas de todos os
• Quando uma página deve ser carregada para a
memória? processos são utilizadas na troca;
• Como trazer uma página para a memória? • Problema: processos com menor prioridade podem ter um
número muito reduzido de páginas, e com isso, acontecem
• Como liberar espaço na memória? 95 96
muitas faltas de páginas;

16
Gerenciamento de Memória Gerenciamento de Memória
Paginação - Troca de Páginas Troca de Páginas
• Algoritmos de substituição local alocam uma
fração fixa de memória para cada processo;
• a) Configuração inicial.
enquanto que algoritmos de substituição global
• b) Alocação local.
alocam molduras de páginas entre os processos
• c) Alocação global.
em execução, variando o número de páginas no
tempo;

97 98

Gerenciamento de Memória Gerenciamento de Memória


Troca de Páginas Troca de Páginas
Memória Virtual Memória Principal
0 A 0 • Se todas as páginas estiverem ocupadas, uma
B
1
2 C
1
2
página deve ser retirada: página vítima;
D
Tabela de Páginas
3
E Simplificada
3 D • Exemplo:
4 4 G
5 F
0 i 5 • Dois processos P1 e P2, cada um com 4 páginas
6 G i 6
7 H
1
2 10 v 7 virtuais;
8
3 3 v
i 9
• Memória principal com 6 páginas.
4
5 i 10 C
Página 6 4 v 11
Virtual 7 i 12
13 99 100
14
Página Real 15

Gerenciamento de Memória Gerenciamento de Memória


Troca de Páginas Troca de Páginas
Memória Virtual P1 Tabela de Páginas P1 Memória Virtual P1 Tabela de Páginas P1
0 A Simplificada 0 A Simplificada
1 B 1 B 1 v
0 1 v 0
2 C 2 C 5 v
1 5 v Memória Principal 1 Memória Principal
3 D i 0 D 3 D i
2 2 0 D
3 0 v 1 A 3 0 v 1 A
2 F 2 F
3 E 3 E
4 G 4 H
Memória Virtual P2 Tabela de Páginas P2 5 B Memória Virtual P2 Tabela de Páginas P2 5 B
0 E Simplificada 3 páginas de 0 E Simplificada 3 páginas de
1 F cada processo 1 F 3 v cada processo
0 3 v 0
2 G 1 2 v 2 G 1 2 v
3 H 3 H i
2 4 v 2
3 i 3 4 v
101 102
à P2 tenta acessar página 3! Falta de Página! à Página 2 (virtual) é escolhida como vítima!

17
Gerenciamento de Memória
Gerenciamento de Memória Troca de Páginas - Paginação
Troca de Páginas - Paginação
• Algoritmos: • Algoritmo Ótimo:
• Ótimo; • Retira da memória a página que tem menos
• NRU; chance de ser referenciada;
• FIFO; • Praticamente impossível de se saber;
• Segunda Chance; • Impraticável;
• Relógio; • Usado em simulações para comparação com outros
algoritmos.
• LRU;
• Working set;
• WSClock.
103 104

Gerenciamento de Memória Gerenciamento de Memória


Troca de Páginas - Paginação Troca de Páginas - Paginação
• Algoritmo Not Recently Used Page Replacement • NRU:
(NRU) à troca as páginas não utilizadas • Periodicamente, o bit R é limpo para
recentemente: diferenciar as páginas que não foram
• 02 bits associados a cada página à R e M referenciadas recentemente;
• Classe 0 à não referenciada, não modificada;
• A cada tick do relógio ou interrupção de relógio;
• Classe 1 à não referenciada, modificada;
• Classe 2 à referenciada, não modificada; • Classe 3 à Classe 1;
• Classe 3 à referenciada, modificada; • Vantagens: fácil de entender, eficiente para
• R e M são atualizados a cada referência à memória. implementar e fornece bom desempenho.
Uma vez que a página foi lida, o valor do bit R será 105 106
sempre igual a 1 até que o SO reinicialize-o

Gerenciamento de Memória Gerenciamento de Memória


Troca de Páginas - Paginação Troca de Páginas - Paginação
• Algoritmo First-in First-out Page • Algoritmo da Segunda Chance
Replacement (FIFO) • FIFO + bit R;
• Página mais velha é candidata em potencial;
• SO mantém uma listas das páginas correntes
na memória; Se o bit R==0, então página é retirada da memória,
• A página no início da lista é a mais antiga e a página senão, R=0 e se dá uma nova chance à página colocando-a
no final da lista é a mais nova; no final da lista. Se página A com
R==1; e
• Simples, mas pode ser ineficiente, pois uma 0 3 7 8 falta de página em
tempo
página que está em uso constante pode ser 1ª página A B C D Página mais recente
tempo 10;
retirada; Então R=0 e página A
107 3 108
7 8 10 vai para final da lista;
• Pouco utilizado. 1ª página B C D A Página mais recente

18
Gerenciamento de Memória Gerenciamento de Memória
Troca de Páginas - Paginação Troca de Páginas - Paginação

• Algoritmo do Relógio • Algoritmo do Relógio


• Lista circular com ponteiro apontando para a página
mais antiga
• Algoritmo se repete até encontrar R=0;

Se R=0 Se R=1
- troca de página -R=0
- desloca o ponteiro - desloca o ponteiro
- continua busca 109 110

Gerenciamento de Memória Gerenciamento de Memória


Troca de Páginas - Paginação Troca de Páginas - Paginação
• Algoritmo Least Recently Used Page • Algoritmo Least Recently Used Page Replacement
Replacement (LRU) (LRU)
• Troca a página menos referenciada/modificada • Pode ser implementado tanto por hardware quanto por
software:
recentemente; • Hardware: MMU deve suportar a implementação LRU;
• Alto custo • Contador em hardware (64 bits) – conta instruções executadas;
• Após cada referência à memória, o valor do contador é armazenado na
• Lista encadeada com as páginas que estão na memória, com entrada da tabela de páginas referente à página acessada;
as mais recentemente utilizadas no início e as menos • Quando ocorre falta de página, o SO examina todos os contadores e escolhe
a página que tem menor valor;
utilizadas no final; • Tabela de páginas armazena o valor desse contador para saber quantas
• A lista deve ser atualizada a cada referência da memória. vezes a página foi usada.
• Software: duas maneiras
• NFU (Not frequently used);
• Aging (Envelhecimento);
111 112

Gerenciamento de Memória
Gerenciamento de Memória
Troca de Páginas - Paginação Troca de Páginas - Paginação
• LRU – Hardware
• Matriz nxn bits
• Software: NRU
• Quando se faz uma referência à página k -> • Para cada página existe um contador à
• Todos os bits da linha k recebem valor 1 iniciado com zero e incrementado a cada
• Todos os bits da coluna k recebem o valor 0 referência à pagina;
• Página com menor valor do contador é
candidata a troca;
• Como esse algoritmo não se esquece de
nada
• Problema: pode retirar páginas que estão sendo
113
referenciadas com frequência; 114
• Compilador com vários passos: passo 1 tem mais tempo
de execução que os outros passos à páginas do passo 1
terão mais referências armazenadas;

19
Gerenciamento de Memória
Gerenciamento de Memória Troca de Páginas - Paginação
Troca de Páginas - Paginação • Algoritmo aging
Bits R para páginas 0-5
• Software: Algoritmo aging clock tick 0 clock tick 1 clock tick 2 clock tick 3 clock tick 4
101011 110010 110101 100010 011000
• Modificação do NRU, resolvendo o problema Contadores
descrito anteriormente; 0 10000000 11000000 11100000 11110000 01111000
• Além de saber quantas vezes a página foi
1 00000000 10000000 11000000 01100000 10110000
referenciada, também controla quando ela foi
referenciada; 2 10000000 01000000 00100000 00100000 10001000

• Geralmente, 8 bits são suficientes para o controle 3 00000000 00000000 10000000 01000000 00100000
se as interrupções de relógio (clock ticks) ocorrem a 4 10000000 11000000 01100000 10110000 01011000
cada 20ms (10-3); 5 10000000 01000000 10100000 01010000 00101000
115 116
a) b) c) d) e)

Gerenciamento de Memória Gerenciamento de Memória


Troca de Páginas - Paginação Troca de Páginas - Paginação
• Algoritmo Working Set (WS): • Algoritmo Working Set (WS):
• Paginação por demanda à páginas são • Objetivo principal: reduzir a falta de páginas
carregadas na memória somente quando são • Um processo só é executado quando todas as páginas
necessárias; necessárias no tempo t estão carregadas na memória;
• Pré-paginação à Working set • SO gerencia quais páginas estão no Working Set;
• Conjunto de páginas que um processo está • Para simplificar à o working set pode ser visto como o
efetivamente utilizando (referenciando) em um conjunto de páginas que o processo referenciou
determinado tempo t. durante os últimos t segundos de tempo;
w(k,t) • Utiliza bit R e o tempo de relógio (tempo virtual) da
última vez que a página foi referenciada;
WS
P1 P3 P4 P7 P8 P4
117 118
tempo
t1 t2

Gerenciamento de Memória
Troca de Páginas - Paginação Gerenciamento de Memória
§ Algoritmo Working Set: Tempo virtual atual (CVT): 2204
Troca de Páginas - Paginação
Bit R
age = CVT – TLU • Algoritmo WSClock:
(Ex.: 2204-2084 = 120)
Tempo do último τ = múltiplos clock ticks • Clock + Working Set;
Uso (TLU) 2084 1
• Lista circular de páginas formando um anel a
2003 1 Percorrer as páginas examinando bit R; cada página carregada na memória;
* Se todas as páginas
estiverem com R=1, 1980 1 Se (R==1)*
uma página é página foi referenciada; • Utiliza bit R e o tempo da última vez que a
escolhida
1213 0 faz TLU da página igual ao CVT; página foi referenciada;
Randomicamente; 2014 1 Se (R==0 e age > τ) • Bit M utilizado para agendar escrita em disco.
** Se todas as páginas página não está no working set;
2020 1 remove a página;
estiverem no WS, a
página mais velha 2032 1 Se (R==0 e age <= τ) **
com página está no working set; 119 120
1620 0
R=0 é escolhida; guarda página com maior age;
Tabela de Páginas

20
Gerenciamento de Memória
Gerenciamento de Memória Troca de Páginas - Paginação
Troca de Páginas - Paginação
Tempo virtual atual: 2204 Tempo virtual atual: 2204
• Algoritmo WSClock: • Algoritmo WSClock:
1620 0 1620 0 1620 0 1620 0

2084 1 2032 1 2084 1 2032 1 2084 1 2032 1 2084 1 2032 1

2003 1 2020 1 2003 1 2020 1 2003 1 2020 1 2003 1 2020 1

1980 1 2014 1 1980 1 2014 0 1980 1 2014 0 1980 1 2014 0


Bit R Bit R
1213 0 1213 0 1213 0 2204 1
Tempo do último Tempo do último
a) uso b) 121 c) uso d) 122
R==1 R==0 e age>t Nova página
R=0 e ponteiro avança M==0 (não agenda escrita) à troca

Gerenciamento de Memória
Troca de Páginas - Paginação Gerenciamento de Memória
Troca de Páginas - Paginação
Tempo virtual atual: 2204
• Algoritmo WSClock: • Algoritmo WSClock:
2204 1
1620 0
2032 1 • Se todas estiverem com M==1; então escreve
2084 0
2084 1 2032 1 Nova página página atual no disco, e troca a página;
2003 0 2020 1 • Melhor desempenho à menos acessos ao
2003 1 2020 1 disco.
1980 0 2014 0
1980 1 2014 0
1213 0
1213 0
c) d)
R==0 e age>t 123 124
M==1 (agenda escrita e continua procura)

Gerenciamento de Memória Gerenciamento de Memória


Troca de Páginas - Paginação Troca de Páginas - Paginação
• Algoritmos de substituição local:
Resumo dos Algoritmos de Substituição de Páginas
• Working Set;
• WSClock; Algoritmo Comentário
• Algoritmos de substituição local/global: Ótimo
NRU
Não implementável, mas útil como um padrão de desempenho
Muito rudimentar
• Ótimo; FIFO Pode descartar páginas importantes
Segunda Chance Algoritmo FIFO bastante melhorado
• NRU; Relógio Realista
• FIFO; MRU Excelente algoritmo porém difícil de ser implementado de maneira exata
NFU Aproximação bastante rudimentar do MRU
• Segunda Chance; Envelhecimento Algoritmo bastante eficiente que se aproxima bem do MRU
Conjunto de trabalho Implementação cara
• LRU; WSClock Algoritmo bom e eficiente
• Relógio. 125 126

21
Gerenciamento de Memória Gerenciamento de Memória
Implementação da Paginação Implementação da Paginação
Até agora – somente como uma página é selecionada para • Memória Secundária – Disco
remoção. Mas onde essa página descartada da memória é
colocada? • Possibilidade B - Nada é alocado
• Memória Secundária – Disco antecipadamente, espaço é alocado em disco
• A área de troca (swap area) é gerenciada como uma lista de quando a página for enviada para lá. Assim,
espaços disponíveis;
processo na memória RAM não fica
• O endereço da área de troca de cada processo é mantido na
tabela de processos; “amarrado” a uma área específica.
• Cálculo do endereço: MMU;
• Possibilidade A - Assim que o processo é criado, ele é copiado
todo para sua área de troca no disco, sendo carregado para
memória quando necessário;
• Área de troca diferente para dados, pilha e programa, pois área de 127 128
dados pode crescer e a área de pilha crescerá certamente.

Gerenciamento de Memória Gerenciamento de Memória


Implementação da Paginação Memória Virtual - Segmentação
Como fica o disco – memória secundária • Segmentação: Visão do programador/compilador
• Tabelas de segmentos com n linhas, cada qual
apontando para um segmento de memória;
• Vários espaços de endereçamento;
• Endereço real à base + deslocamento;
• Alocação de segmentos segue os algoritmos já
estudados:
• FIRST-FIT;
• BEST-FIT;
• NEXT-FIT;
• WORST-FIT;
129 • QUICK- FIT. 130
Área de troca estática Área de troca dinâmica

Gerenciamento de Memória Gerenciamento de Memória


Memória Virtual - Segmentação Memória Virtual - Segmentação
• Segmentação: • Segmentação:
• Facilita proteção dos dados; • Problemas encontrados à embora haja espaço na
memória, não há espaço contínuo:
• Facilita compartilhamento de procedimentos e dados
• Política de realocação: um ou mais segmentos são realocados
entre processos; para abrir espaço contínuo;
• MMU também é utilizada para mapeamento entre os • Política de compactação: todos os espaços são compactados;
endereços lógicos e físicos; • Política de bloqueio: fila de espera;
• Tabela de segmentos informa qual o endereço da memória • Política de troca: substituição de segmentos;
física do segmento e seu tamanho. • Sem fragmentação interna, com fragmentação
externa.

131 132

22
Gerenciamento de Memória Gerenciamento de Memória
Memória Virtual - Segmentação Memória Virtual - Segmentação
Memória Lógica P1

Livre Tarefa: Compilação Tabela de Segmentos P1

Pilha 20k Editor Limite Base


43062
25286 43062
0
4425 68348
Árvore 16k Dados 1 Editor
Segmento 0 1
de Parse 12k 12k 68348
Segmento 1 Dados 1
Tabela 72773
Constantes de Árvore Memória Lógica P2
Símbolos de Tabela de Segmentos P2
90003
Fonte Fonte Parser Pilha Editor Limite Base
Dados 2
25286 43062
02k 0 98553
Tabela 8850 90003
Dados 1
de Símbolos Constantes Segmento 0 2

0k 0k 0k 0k 0k Memória Física
Espaço de 133 Segmento 1 134
Endereçamento Segmentos (0-4)
Virtual

Gerenciamento de Memória
Gerenciamento de Memória Segmentação-Paginada
Segmentação-Paginada
Tabela de Páginas
• Espaço lógico é formado por segmentos s p d Segmento 0
p.f d
• Cada segmento é dividido em páginas lógicas;
• Cada segmento possui uma tabela de páginas à
mapear o endereço de página lógica do segmento em
endereço de página física;
• No endereçamento, a tabela de segmentos indica, Tabela de Segmentos
Tabela de Páginas
para cada segmento, onde sua respectiva tabela de Segmento 3
páginas está;

135 136

Gerenciamento de Memória
Thrashing Gerenciamento de Memória
Thrashing
• Thrashing (paginação excessiva)
• Evitar o problema (paginação):
• Associado com o problema de definição do • Taxa máxima aceitável de troca de páginas;
número de páginas/segmentos à troca de • Suspender alguns processos, liberando páginas físicas
páginas/segmentos é uma tarefa cara e lenta; (swapping);
• Risco de aumentar o tempo de resposta dos processos.
• Se o processo tiver um número de páginas muito • Determinar periodicamente o número de processos
reduzido, ele pode ficar muito tempo esperando em execução e alocar para cada um mesmo número
pelo atendimento de uma falta de página à de páginas;
• Problema: processos grandes teriam o mesmo número de
muitos processos bloqueados. páginas de processos pequenos, causando paginação
excessiva.
137 138

23
Gerenciamento de Memória
Thrashing Gerenciamento de Memória
Memória Virtual
Consideração Paginação Segmentação
• Possível solução: Número de páginas Programador deve saber da técnica? Não Sim
proporcional ao tamanho do processo à
alocação dinâmica durante a execução dos
processos; Espaços de endereçamento existentes 1 Vários

• PFF (Page Fault Frequency): algoritmo informa


quando aumentar ou diminuir a alocação de páginas Espaço total de endereço pode Sim Sim
de um processo, controlando o tamanho do exceder memória física?
conjunto de alocação;
É possível distinguir procedimento de Não Sim
139 dados e protegê-los? 140

Gerenciamento de Memória
Memória Virtual
Consideração Paginação Segmentação
Tabelas de tamanho Não Sim
variável podem ser
acomodadas sem
problemas?
Compartilhamento Não Sim
de procedimentos
entre usuário é
facilitado?
Por que? Para obter Para permitir que programas e
espaço de dados possam ser divididos em
endereçamento espaços de endereçamento
maior sem logicamente independentes;
aumentar compartilhamento e proteção 141
memória física

24

Você também pode gostar