SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
Aula 15 – TLB, Aloca¸c˜ao e Troca de
P´aginas
Norton Trevisan Roman
16 de outubro de 2017
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 1 / 45
Mem´oria Associativa (TLB)
O gerenciamento da TLB pode ser:
Por software (Spark, MIPS)
As entradas da TLB no hardware s˜ao carregadas pelo SO
Em caso de page fault na TLB, a MMU faz uma
interrup¸c˜ao ao SO
O SO busca a p´agina na tabela de p´aginas, destitui uma entrada
da TLB (que est´a no hardware), insere a´ı a nova p´agina e
reinicializa a instru¸c˜ao interrompida
Usa a mem´oria → mais lento
As p´aginas contendo a pr´opria tabela de p´aginas podem
n˜ao estar na TLB, quando do processamento de uma
TLB miss → Causar´a novas TLB misses durante o
processo
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 2 / 45
Mem´oria Associativa (TLB)
Tipos de ausˆencias:
Soft miss
Quando a p´agina referenciada n˜ao est´a na TLB, mas est´a na
mem´oria f´ısica
Basta atualizar a TLB
Hard miss
A p´agina em si n˜ao est´a na mem´oria f´ısica (e nem na TLB,
naturalmente)
Deve-se fazer um acesso ao disco para trazˆe-la `a mem´oria (e
ent˜ao `a TLB)
Muito lento
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 3 / 45
Tabela de P´aginas na Mem´oria Principal
TLBs aceleram a tradu¸c˜ao entre endere¸cos virtuais e
reais
Mas esse ´e apenas um problema → como traduzir
rapidamente
Resta ainda como lidar com grandes espa¸cos de
endere¸cos virtuais → como organizar a tabela de
p´aginas?
Pagina¸c˜ao hier´arquica (multi-n´ıvel)
Tabelas de p´agina invertidas
Tabelas de p´agina invertidas em hash
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 4 / 45
Tabela de P´aginas Multin´ıvel
A ideia ´e evitar manter na mem´oria todas as tabelas
de p´agina o tempo todo
Apenas as necess´arias devem estar na mem´oria
Ex: Suponha que um programa esteja dividido em:
Um espa¸co para o c´odigo (4MB da base da RAM)
Um espa¸co para os dados (4MB seguintes)
Um espa¸co para a pilha (4MB do topo da RAM)
H´a um buraco gigante vazio na tabela
Com p´aginas de 4KB, temos um offset de 12 bits
Como temos 32 – 12 = 20 bits para endere¸car p´aginas, temos 220
=
1M poss´ıveis p´aginas → dessas, usou apenas 3K (1K p´aginas para
cada um dos espa¸cos do programa)
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 5 / 45
Tabela de P´aginas Multin´ıvel
Lembre que, na implementa¸c˜ao “pura” desse
modelo, processos mantˆem uma tabela completa na
mem´oria, quer a usem, quer n˜ao
Com pagina¸c˜ao em mais de um n´ıvel, mesmo que a
tabela inteira seja enorme, para esse programa
precisar´ıamos apenas manter o suficiente para
gerenciar esses 12MB
As demais p´aginas (possivelmente n˜ao usadas), n˜ao estariam
na mem´oria
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 6 / 45
Pagina¸c˜ao em Dois N´ıveis
Ex: Endere¸cos de 32b e p´aginas de 4KB
Tabela ´Unica: 20 bits → 1M entradas
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 7 / 45
Pagina¸c˜ao em Dois N´ıveis
Ex: Endere¸cos de 32b e p´aginas de 4KB
Tabela ´Unica: 20 bits → 1M entradas
Duas Tabelas:
Principal: 10 bits → 1K entradas
Secund´arias: Ad hoc
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 7 / 45
Pagina¸c˜ao em Dois N´ıveis
Endere¸camento:
Um endere¸co l´ogico (em m´aquinas de 32 bits com p´aginas
de 4KB) ´e dividido em:
Um n´umero de p´agina contendo 20 bits
Um deslocamento de p´agina contendo
12 bits
Como a tabela de p´agina ´e paginada, o n´umero de p´agina ´e
dividido ainda em:
Um n´umero de p´agina PT1, de 10 bits, que serve de ´ındice para a
tabela de p´agina mais externa
Um n´umero de p´agina PT2, de 10 bits, que serve de deslocamento
da p´agina referenciada dentro da tabela de p´agina mais externa
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 8 / 45
Pagina¸c˜ao em Dois N´ıveis
Cada p´agina/moldura
tem 4KB (12 bits)
Como h´a 1024 entradas
na tabela de nivel 2 (por
conta dos 10 bits), cada
tabela dessas representa
4MB
Como cada entrada na
tabela de nivel 1
representa uma tabela de
nivel 2, cada entrada
representa 4MB
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 9 / 45
Pagina¸c˜ao em Dois N´ıveis
Cada p´agina/moldura
tem 4KB
Como h´a 1024 entradas
na de nivel 1 (10 bits), ela
representa um todo de
4GB – os 32 bits
S´o precisamos de 4
tabelas na mem´oria
A de nivel 1, e as outras 3, para o c´odigo (entrada 0), os
dados (entrada 1) e a pilha (entrada 1023)
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 10 / 45
Tabela de P´aginas Multin´ıvel
Quebra-se ent˜ao o espa¸co de endere¸co l´ogico em
m´ultiplas tabelas de p´agina. Ex: x86 – 2 n´ıveis
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 11 / 45
Pagina¸c˜ao em Dois N´ıveis
Tradu¸c˜ao de endere¸co:
Quando chega um
endere¸co virtual, a MMU
extrai o campo PT1,
usando-o como ´ındice na
tabela mais alta (n´ıvel 1)
O endere¸co dessa tabela
est´a em um registrador
(CR3 no x86)
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 12 / 45
Pagina¸c˜ao em Dois N´ıveis
Tradu¸c˜ao de endere¸co:
A entrada nessa posi¸c˜ao
d´a o endere¸co (ou
moldura) da tabela de
p´agina no segundo n´ıvel
Checa o bit de residˆencia
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 13 / 45
Pagina¸c˜ao em Dois N´ıveis
Tradu¸c˜ao de endere¸co:
A entrada nessa posi¸c˜ao
d´a o endere¸co (ou
moldura) da tabela de
p´agina no segundo n´ıvel
Checa o bit de residˆencia
O campo PT2 ´e ent˜ao
usado como ´ındice na
tabela de p´aginas de
segundo n´ıvel
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 13 / 45
Pagina¸c˜ao em Dois N´ıveis
Tradu¸c˜ao de endere¸co:
O n´umero da moldura
f´ısica ´e obtido dessa
entrada na tabela
Checa o bit de residˆencia
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 14 / 45
Pagina¸c˜ao em Dois N´ıveis
Tradu¸c˜ao de endere¸co:
O n´umero da moldura
f´ısica ´e obtido dessa
entrada na tabela
Checa o bit de residˆencia
Finalmente o
deslocamento ´e usado
para compor o endere¸co
f´ısico
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 14 / 45
Pagina¸c˜ao em Dois N´ıveis
Ex: 4.206.596 (12.292 do in´ıcio dos dados – 4MB)
00000000010000000011000000000100
PT1 = 1 → entrada 1 da
tabela de n´ıvel 1
O conte´udo, se na
mem´oria, cont´em o
endere¸co da moldura da
tabela de n´ıvel 2
correspondente
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 15 / 45
Pagina¸c˜ao em Dois N´ıveis
Ex: 4.206.596 (12.292 do in´ıcio dos dados – 4MB)
00000000010000000011000000000100
PT2 = 3 → entrada 3 da
tabela de n´ıvel 2 rec´em
acessada
Obt´em o n´umero da
moldura correspondente
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 16 / 45
Pagina¸c˜ao em Dois N´ıveis
Ex: 4.206.596 (12.292 do in´ıcio dos dados – 4MB)
00000000010000000011000000000100
Se a p´agina n˜ao
estiver na mem´oria:
Bit pres/aus = 0, na
entrada de n´ıvel 2
Page fault
Se estiver
Adiciona ao n´umero da moldura o deslocamento (4) e envia ao
barramento
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 17 / 45
Tabela de P´aginas Multin´ıvel
Mais n´ıveis podem existir (ex: com 64b)
Dois:
Trˆes:
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 18 / 45
Tabela de P´aginas Multin´ıvel
O Linux utiliza tabelas de p´aginas de 4 n´ıveis:
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 19 / 45
Tabelas de P´agina Invertidas
Com 32 bits, at´e 3 n´ıveis v˜ao bem. E com 64?
Se a p´agina tiver 4 KB (212
), teremos uma tabela (´unica)
com 264−12
= 252
entradas
Se cada entrada tiver 8 B, a tabela ter´a mais de 30.000.000 GB (de
fato, 32 PB – peta bytes)
Com pagina¸c˜ao dupla, 42 bits para a p´agina prim´aria e 10
para a secund´aria (e 12 para as molduras)
242
× 8 = 245
B (32 TB) s´o para a prim´aria
Com pagina¸c˜ao tripla, 32 bits para a p´agina prim´aria e 10
para a secund´aria e terci´aria
232
× 8 = 32GB somente para a prim´aria
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 20 / 45
Tabelas de P´aginas Invertidas
Que fazer? Depende da arquitetura
Usar 4 n´ıveis (x86-64 – AMD, depois adotada pela Intel)
Com 22-10-10-10-12 bits, temos 222
× 8 = 32MB
Usar uma tabela de p´aginas invertida (PowerPC,
UltraSPARC e IA-64 – Itanium)
Tabela que possui uma entrada por moldura f´ısica
Em vez de uma entrada por p´agina no espa¸co virtual
Indexada pela moldura
A entrada registra que p´agina virtual esta localizada na
moldura
Com informa¸c˜oes sobre o processo que possui essa p´agina
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 21 / 45
Tabelas de P´aginas Invertidas
Poupam muito espa¸co quando o espa¸co virtual ´e
muito maior que o f´ısico
Ex:
Endere¸cos virtuais de 64 bits e p´agina de 4 KB
Em 1 GB de RAM, a tabela requer t˜ao somente o suficiente
para mapear a mem´oria f´ısica
Nesse caso, 1 GB / 4 KB = 262.144 entradas (com 32b, total de 1
MB)
N˜ao depende do tamanho do espa¸co de endere¸camento
virtual
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 22 / 45
Tabelas de P´aginas Invertidas
Modelo de p´agina ´unica ou multin´ıvel:
Cada processo tem uma tabela de p´aginas associada
a ele → classifica¸c˜ao feita pelo endere¸co virtual
Modelo de p´agina invertida:
O SO mant´em uma ´unica tabela para as molduras
de p´aginas da mem´oria
Cada entrada consiste no endere¸co virtual da p´agina
armazenada naquela moldura, com informa¸c˜oes
sobre o processo dono da p´agina virtual
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 23 / 45
Tabelas de P´aginas Invertidas
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 24 / 45
Tabelas de P´aginas Invertidas
Problema: Tradu¸c˜ao virtual → f´ısica ´e muito mais
dif´ıcil
Quando o processo n referencia a p´agina virtual p, o
hardware n˜ao consegue mais encontrar a p´agina f´ısica
usando p como ´ındice
Deve buscar em toda a tabela invertida
por uma entrada (n,p)
Se encontrar, gera o endere¸co f´ısico
Faz isso em cada referˆencia `a mem´oria,
e n˜ao somente em page faults
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 25 / 45
Tabelas de P´aginas Invertidas
Que fazer ent˜ao?
Usar a TLB para guardar as p´aginas mais acessadas
Caso a p´agina buscada n˜ao esteja na TLB, devemos ainda
assim procurar em toda a tabela invertida
Para auxiliar nessa busca, podemos ter uma tabela
de espalhamento (hash) nos endere¸cos virtuais
Todas as p´aginas virtuais atualmente presentes na mem´oria e
que tiverem o mesmo valor de hash ser˜ao encadeadas juntas
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 26 / 45
Tabelas de P´aginas Invertidas em Hash
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 27 / 45
Tabelas de P´aginas Invertidas em Hash
Buscas na tabela invertida s˜ao feitas atrav´es da
tabela de hash, com o valor de hash calculado a
partir do endere¸co virtual
Uma vez encontrado o
n´umero da moldura (a
partir da busca na lista
correspondente `a p´agina
virtual), o par (virtual,
f´ısico) ´e armazenado na
TLB
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 28 / 45
Tabelas de P´aginas em Hash
Funcionamento:
O endere¸co de pagina virtual ´e usado para c´alculo do
hash
Esse endere¸co ´e comparado a cada elemento da lista
correspondente
Se for
encontrado,
o campo da
moldura ´e
usado no
endere¸co
f´ısico
Se n˜ao,
page fault
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 29 / 45
Tabelas de P´aginas Invertidas em Hash
E qual o tamanho de cada lista?
Se a tabela de hash tiver o mesmo n´umero de
entradas que o de molduras, o comprimento m´edio
de cada lista ser´a de somente um par
p´agina/moldura
Agilizando assim o mapeamento
Voltamos a ter acesso por meio do endere¸co virtual,
com economia de espa¸co (embora gaste
processamento com a fun¸c˜ao de hash)
Ao encontrar a moldura, a nova dupla (virtual,
f´ısica) ´e inserida na TLB
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 30 / 45
Que p´agina devemos substituir?
Pol´ıtica de Substitui¸c˜ao
Local:
Somente p´aginas dos pr´oprios
processos s˜ao utilizadas na
troca
Ex: page fault no processo A
Escolha a usada menos
recentemente dentre as molduras
usadas por A
idade = instante de ´ultimo acesso, desde o in´ıcio do processo
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 31 / 45
Que p´agina devemos substituir?
Pol´ıtica de Substitui¸c˜ao
Local:
Somente p´aginas dos pr´oprios
processos s˜ao utilizadas na
troca
Ex: page fault no processo A
Escolha a usada menos
recentemente dentre as molduras
usadas por A
idade = instante de ´ultimo acesso, desde o in´ıcio do processo
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 31 / 45
Que p´agina devemos substituir?
Pol´ıtica de Substitui¸c˜ao
Local:
Somente p´aginas dos pr´oprios
processos s˜ao utilizadas na
troca
Ex: page fault no processo A
Escolha a usada menos
recentemente dentre as molduras
usadas por A
Aloca a cada processo fra¸c˜ao
fixa da mem´oria
idade = instante de ´ultimo acesso, desde o in´ıcio do processo
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 31 / 45
Que p´agina devemos substituir?
Pol´ıtica de Substitui¸c˜ao Local:
Limita cada processo a um n´umero fixo de p´aginas
(fra¸c˜ao fixa da mem´oria)
Dificuldade: definir quantas p´aginas cada processo
pode utilizar
Se o processo usar menos que as previstas → desperd´ıcio
Se usar mais que o previsto (ou galgar mais mem´oria
enquanto executa) → muitas trocas (ultrapagina¸c˜ao –
thrashing), mesmo havendo molduras dispon´ıveis
Thrashing: diz-se de um processo que gasta mais tempo
paginando que executando
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 32 / 45
Que p´agina devemos substituir?
Pol´ıtica de Substitui¸c˜ao
Global:
P´aginas de todos os processos
s˜ao utilizadas na troca
Ex: page fault no processo A
Escolha a mais antiga dentre as
molduras dispon´ıveis
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 33 / 45
Que p´agina devemos substituir?
Pol´ıtica de Substitui¸c˜ao
Global:
P´aginas de todos os processos
s˜ao utilizadas na troca
Ex: page fault no processo A
Escolha a mais antiga dentre as
molduras dispon´ıveis
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 33 / 45
Que p´agina devemos substituir?
Pol´ıtica de Substitui¸c˜ao
Global:
P´aginas de todos os processos
s˜ao utilizadas na troca
Ex: page fault no processo A
Escolha a mais antiga dentre as
molduras dispon´ıveis
Processos sem fra¸c˜ao fixa da
mem´oria
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 33 / 45
Que p´agina devemos substituir?
Pol´ıtica de Substitui¸c˜ao
Global:
Problema: processos com
menor prioridade podem ter um
n´umero muito reduzido de
p´aginas, e com isso, acontecem
muitas faltas de p´aginas →
thrashing
Ainda assim, em geral
funcionam melhor que os locais
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 34 / 45
Quantas molduras alocar?
Aloca¸c˜ao fixa ou est´atica:
Cada processo tem um n´umero m´aximo de molduras,
definido quando o processo ´e criado
Em um page fault, considera apenas molduras do pr´oprio processo
O limite pode ser igual para todos os processos, ou seguir
alguma pol´ıtica de distribui¸c˜ao
Vantagem: simplicidade
Desvantagens:
N´umero muito pequeno de molduras pode causar muita pagina¸c˜ao –
thrashing
N´umero muito grande de molduras causa desperd´ıcio de mem´oria
principal
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 35 / 45
Quantas molduras alocar?
Aloca¸c˜ao vari´avel ou dinˆamica:
N´umero de molduras alocadas ao processo varia durante sua
execu¸c˜ao
Associada aos algoritmos com pol´ıtica de substitui¸c˜ao global
Algoritmo: PFF (page faut frequency)
Mede a frequˆencia de faltas de p´agina – se alta, aumenta o volume
de molduras, se baixa, reduz esse limite
Controla t˜ao somente o tamanho do conjunto de aloca¸c˜ao
Vantagem: processos com elevada taxa de pagina¸c˜ao podem
ter seu limite de molduras ampliado; e processos com baixa
taxa de pagina¸c˜ao podem ter seu limite de molduras reduzido
Desvantagem: monitoramento constante
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 36 / 45
Estrat´egias de Pagina¸c˜ao
Pagina¸c˜ao simples:
Todas as p´aginas virtuais do processo s˜ao carregadas para a
mem´oria principal
Assim, sempre todas as p´aginas s˜ao v´alidas
Pagina¸c˜ao por demanda (Demand Paging):
Processos come¸cam com nenhuma p´agina na mem´oria
Assim que a CPU tenta executar a primeira instru¸c˜ao, gera
um page fault
O S.O. traz a p´agina que falta `a mem´oria
Mais usada hoje
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 37 / 45
Estrat´egias de Pagina¸c˜ao
Pagina¸c˜ao por demanda (Demand Paging):
Apenas as p´aginas efetivamente acessadas pelo processo s˜ao
carregadas na mem´oria principal
Quais p´aginas virtuais foram carregadas?
Indicado pelo bit de residˆencia (ou referˆencia)
Na pagina¸c˜ao por demanda as p´aginas s˜ao carregadas na
mem´oria somente quando s˜ao necess´arias
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 38 / 45
Troca de P´aginas
Relembrando... Quando ocorre um page fault
Se todas as molduras estiverem ocupadas, o S.O. escolhe
uma p´agina para eliminar → p´agina v´ıtima
A escolha pode ser aleat´oria
Ser´a melhor escolher uma p´agina que n˜ao seja muito usada
Linux: O kernel e o mapa de mem´oria s˜ao fixos – suas p´aginas
nunca s˜ao exclu´ıdas
Se essa p´agina foi modificada enquanto estava na mem´oria,
deve ser reescrita no disco
Se n˜ao tiver sido modificada, pode apenas ser sobrescrita
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 39 / 45
Algoritmos de Troca de P´aginas
´Otimo
NRU (Not Recently
Used)
FIFO (First-in
First-out)
Segunda Chance
Rel´ogio
LRU (Least Recently
Used)
Working set
WSClock (Working Set
Clock)
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 40 / 45
Algoritmo ´Otimo
Cada p´agina ´e marcada com o n´umero de instru¸c˜oes
que ser˜ao executadas antes que a p´agina seja
referenciada
Retira da mem´oria a p´agina que tem menos chance de ser
referenciada (maior n´umero de instru¸c˜oes faltantes)
Substitui, dentre as p´aginas atuais, a que ser´a referenciada por
´ultimo
Adia ao m´aximo a pr´oxima falta de p´agina
Praticamente imposs´ıvel de se saber – Impratic´avel
Usado em simula¸c˜oes para compara¸c˜ao com outros
algoritmos
Executando-se o programa e guardando suas referˆencias `as
p´aginas, para ent˜ao testar na segunda execu¸c˜ao
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 41 / 45
NRU – Not Recently Used
Classifica as p´aginas com frames atualmente na
mem´oria:
Usa os bits de status (associados a cada p´agina) da tabela
de p´aginas → R(eferenciada) e M(odificada)
Classe 0 (00) → n˜ao referenciada, n˜ao modificada
Classe 1 (01) → n˜ao referenciada, modificada
Classe 2 (10) → referenciada, n˜ao modificada
Classe 3 (11) → referenciada, modificada
Referenciada (bit 1) → lida ou escrita
Modificada (bit 1) → escrita
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 42 / 45
NRU – Not Recently Used
R e M s˜ao atualizados a cada referˆencia `a mem´oria
Armazenados em cada entrada da tabela de p´agina
Seu valor ´e determinado pelo hardware
Quando um processo ´e iniciado, ambos R e M s˜ao 0
para todas suas p´aginas
Periodicamente, o bit R ´e limpo para diferenciar as p´aginas
que n˜ao foram referenciadas recentemente
Opera¸c˜ao feita a cada interrup¸c˜ao de rel´ogio (em geral 20ms)
O bit M n˜ao ´e limpo, pois o S.O. precisa saber se deve
escrever a p´agina no disco
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 43 / 45
NRU – Not Recently Used
Quando ocorre uma page fault:
Remove aleatoriamente uma p´agina, escolhendo
dentre as classes mais baixas → bits 00, 01, 10, 11
D´a preferˆencia a quem n˜ao foi recentemente usada e
n˜ao precisa voltar ao disco
Vantagens:
F´acil de entender, eficiente para implementar e
fornece bom desempenho
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 44 / 45
Referˆencias Adicionais
http://pages.cs.wisc.edu/˜solomon/cs537/html/paging.html
http://en.wikipedia.org/wiki/Page replacement algorithm
http://www.cs.uic.edu/˜jbell/CourseNotes/
OperatingSystems/9 VirtualMemory.html
Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 45 / 45

Mais conteúdo relacionado

Mais procurados

(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01Norton Trevisan Roman
 
(ACH2044) Sistemas Operacionais - Aula 03
(ACH2044) Sistemas Operacionais - Aula 03(ACH2044) Sistemas Operacionais - Aula 03
(ACH2044) Sistemas Operacionais - Aula 03Norton Trevisan Roman
 
Gerência de Memória: Memória Virtual
Gerência de Memória: Memória VirtualGerência de Memória: Memória Virtual
Gerência de Memória: Memória VirtualAlexandre Duarte
 
3929 linux passo a passo 1
3929 linux passo a passo 1 3929 linux passo a passo 1
3929 linux passo a passo 1 Márcio Roberto
 
Linux Ubuntu 14.04 Desktop - Particoes
Linux Ubuntu 14.04 Desktop - ParticoesLinux Ubuntu 14.04 Desktop - Particoes
Linux Ubuntu 14.04 Desktop - ParticoesRui Lopes
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtualMauro Melo
 
Artigo Denis Rebelo
Artigo Denis RebeloArtigo Denis Rebelo
Artigo Denis RebeloDenis Rebelo
 

Mais procurados (10)

(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01
 
(ACH2044) Sistemas Operacionais - Aula 03
(ACH2044) Sistemas Operacionais - Aula 03(ACH2044) Sistemas Operacionais - Aula 03
(ACH2044) Sistemas Operacionais - Aula 03
 
Memoria Virtual
Memoria VirtualMemoria Virtual
Memoria Virtual
 
Gerência de Memória: Memória Virtual
Gerência de Memória: Memória VirtualGerência de Memória: Memória Virtual
Gerência de Memória: Memória Virtual
 
3929 linux passo a passo 1
3929 linux passo a passo 1 3929 linux passo a passo 1
3929 linux passo a passo 1
 
Memória virtual
Memória virtualMemória virtual
Memória virtual
 
Linux Ubuntu 14.04 Desktop - Particoes
Linux Ubuntu 14.04 Desktop - ParticoesLinux Ubuntu 14.04 Desktop - Particoes
Linux Ubuntu 14.04 Desktop - Particoes
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
355862 slide12-mem virt
355862 slide12-mem virt355862 slide12-mem virt
355862 slide12-mem virt
 
Artigo Denis Rebelo
Artigo Denis RebeloArtigo Denis Rebelo
Artigo Denis Rebelo
 

Mais de Norton Trevisan Roman

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (20)

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
 

Último

Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfFernandaMota99
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxSamiraMiresVieiradeM
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdflucassilva721057
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 

Último (20)

Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdf
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdf
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 

(ACH2044) Sistemas Operacionais - Aula 15

  • 1. Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas Norton Trevisan Roman 16 de outubro de 2017 Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 1 / 45
  • 2. Mem´oria Associativa (TLB) O gerenciamento da TLB pode ser: Por software (Spark, MIPS) As entradas da TLB no hardware s˜ao carregadas pelo SO Em caso de page fault na TLB, a MMU faz uma interrup¸c˜ao ao SO O SO busca a p´agina na tabela de p´aginas, destitui uma entrada da TLB (que est´a no hardware), insere a´ı a nova p´agina e reinicializa a instru¸c˜ao interrompida Usa a mem´oria → mais lento As p´aginas contendo a pr´opria tabela de p´aginas podem n˜ao estar na TLB, quando do processamento de uma TLB miss → Causar´a novas TLB misses durante o processo Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 2 / 45
  • 3. Mem´oria Associativa (TLB) Tipos de ausˆencias: Soft miss Quando a p´agina referenciada n˜ao est´a na TLB, mas est´a na mem´oria f´ısica Basta atualizar a TLB Hard miss A p´agina em si n˜ao est´a na mem´oria f´ısica (e nem na TLB, naturalmente) Deve-se fazer um acesso ao disco para trazˆe-la `a mem´oria (e ent˜ao `a TLB) Muito lento Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 3 / 45
  • 4. Tabela de P´aginas na Mem´oria Principal TLBs aceleram a tradu¸c˜ao entre endere¸cos virtuais e reais Mas esse ´e apenas um problema → como traduzir rapidamente Resta ainda como lidar com grandes espa¸cos de endere¸cos virtuais → como organizar a tabela de p´aginas? Pagina¸c˜ao hier´arquica (multi-n´ıvel) Tabelas de p´agina invertidas Tabelas de p´agina invertidas em hash Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 4 / 45
  • 5. Tabela de P´aginas Multin´ıvel A ideia ´e evitar manter na mem´oria todas as tabelas de p´agina o tempo todo Apenas as necess´arias devem estar na mem´oria Ex: Suponha que um programa esteja dividido em: Um espa¸co para o c´odigo (4MB da base da RAM) Um espa¸co para os dados (4MB seguintes) Um espa¸co para a pilha (4MB do topo da RAM) H´a um buraco gigante vazio na tabela Com p´aginas de 4KB, temos um offset de 12 bits Como temos 32 – 12 = 20 bits para endere¸car p´aginas, temos 220 = 1M poss´ıveis p´aginas → dessas, usou apenas 3K (1K p´aginas para cada um dos espa¸cos do programa) Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 5 / 45
  • 6. Tabela de P´aginas Multin´ıvel Lembre que, na implementa¸c˜ao “pura” desse modelo, processos mantˆem uma tabela completa na mem´oria, quer a usem, quer n˜ao Com pagina¸c˜ao em mais de um n´ıvel, mesmo que a tabela inteira seja enorme, para esse programa precisar´ıamos apenas manter o suficiente para gerenciar esses 12MB As demais p´aginas (possivelmente n˜ao usadas), n˜ao estariam na mem´oria Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 6 / 45
  • 7. Pagina¸c˜ao em Dois N´ıveis Ex: Endere¸cos de 32b e p´aginas de 4KB Tabela ´Unica: 20 bits → 1M entradas Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 7 / 45
  • 8. Pagina¸c˜ao em Dois N´ıveis Ex: Endere¸cos de 32b e p´aginas de 4KB Tabela ´Unica: 20 bits → 1M entradas Duas Tabelas: Principal: 10 bits → 1K entradas Secund´arias: Ad hoc Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 7 / 45
  • 9. Pagina¸c˜ao em Dois N´ıveis Endere¸camento: Um endere¸co l´ogico (em m´aquinas de 32 bits com p´aginas de 4KB) ´e dividido em: Um n´umero de p´agina contendo 20 bits Um deslocamento de p´agina contendo 12 bits Como a tabela de p´agina ´e paginada, o n´umero de p´agina ´e dividido ainda em: Um n´umero de p´agina PT1, de 10 bits, que serve de ´ındice para a tabela de p´agina mais externa Um n´umero de p´agina PT2, de 10 bits, que serve de deslocamento da p´agina referenciada dentro da tabela de p´agina mais externa Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 8 / 45
  • 10. Pagina¸c˜ao em Dois N´ıveis Cada p´agina/moldura tem 4KB (12 bits) Como h´a 1024 entradas na tabela de nivel 2 (por conta dos 10 bits), cada tabela dessas representa 4MB Como cada entrada na tabela de nivel 1 representa uma tabela de nivel 2, cada entrada representa 4MB Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 9 / 45
  • 11. Pagina¸c˜ao em Dois N´ıveis Cada p´agina/moldura tem 4KB Como h´a 1024 entradas na de nivel 1 (10 bits), ela representa um todo de 4GB – os 32 bits S´o precisamos de 4 tabelas na mem´oria A de nivel 1, e as outras 3, para o c´odigo (entrada 0), os dados (entrada 1) e a pilha (entrada 1023) Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 10 / 45
  • 12. Tabela de P´aginas Multin´ıvel Quebra-se ent˜ao o espa¸co de endere¸co l´ogico em m´ultiplas tabelas de p´agina. Ex: x86 – 2 n´ıveis Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 11 / 45
  • 13. Pagina¸c˜ao em Dois N´ıveis Tradu¸c˜ao de endere¸co: Quando chega um endere¸co virtual, a MMU extrai o campo PT1, usando-o como ´ındice na tabela mais alta (n´ıvel 1) O endere¸co dessa tabela est´a em um registrador (CR3 no x86) Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 12 / 45
  • 14. Pagina¸c˜ao em Dois N´ıveis Tradu¸c˜ao de endere¸co: A entrada nessa posi¸c˜ao d´a o endere¸co (ou moldura) da tabela de p´agina no segundo n´ıvel Checa o bit de residˆencia Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 13 / 45
  • 15. Pagina¸c˜ao em Dois N´ıveis Tradu¸c˜ao de endere¸co: A entrada nessa posi¸c˜ao d´a o endere¸co (ou moldura) da tabela de p´agina no segundo n´ıvel Checa o bit de residˆencia O campo PT2 ´e ent˜ao usado como ´ındice na tabela de p´aginas de segundo n´ıvel Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 13 / 45
  • 16. Pagina¸c˜ao em Dois N´ıveis Tradu¸c˜ao de endere¸co: O n´umero da moldura f´ısica ´e obtido dessa entrada na tabela Checa o bit de residˆencia Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 14 / 45
  • 17. Pagina¸c˜ao em Dois N´ıveis Tradu¸c˜ao de endere¸co: O n´umero da moldura f´ısica ´e obtido dessa entrada na tabela Checa o bit de residˆencia Finalmente o deslocamento ´e usado para compor o endere¸co f´ısico Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 14 / 45
  • 18. Pagina¸c˜ao em Dois N´ıveis Ex: 4.206.596 (12.292 do in´ıcio dos dados – 4MB) 00000000010000000011000000000100 PT1 = 1 → entrada 1 da tabela de n´ıvel 1 O conte´udo, se na mem´oria, cont´em o endere¸co da moldura da tabela de n´ıvel 2 correspondente Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 15 / 45
  • 19. Pagina¸c˜ao em Dois N´ıveis Ex: 4.206.596 (12.292 do in´ıcio dos dados – 4MB) 00000000010000000011000000000100 PT2 = 3 → entrada 3 da tabela de n´ıvel 2 rec´em acessada Obt´em o n´umero da moldura correspondente Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 16 / 45
  • 20. Pagina¸c˜ao em Dois N´ıveis Ex: 4.206.596 (12.292 do in´ıcio dos dados – 4MB) 00000000010000000011000000000100 Se a p´agina n˜ao estiver na mem´oria: Bit pres/aus = 0, na entrada de n´ıvel 2 Page fault Se estiver Adiciona ao n´umero da moldura o deslocamento (4) e envia ao barramento Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 17 / 45
  • 21. Tabela de P´aginas Multin´ıvel Mais n´ıveis podem existir (ex: com 64b) Dois: Trˆes: Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 18 / 45
  • 22. Tabela de P´aginas Multin´ıvel O Linux utiliza tabelas de p´aginas de 4 n´ıveis: Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 19 / 45
  • 23. Tabelas de P´agina Invertidas Com 32 bits, at´e 3 n´ıveis v˜ao bem. E com 64? Se a p´agina tiver 4 KB (212 ), teremos uma tabela (´unica) com 264−12 = 252 entradas Se cada entrada tiver 8 B, a tabela ter´a mais de 30.000.000 GB (de fato, 32 PB – peta bytes) Com pagina¸c˜ao dupla, 42 bits para a p´agina prim´aria e 10 para a secund´aria (e 12 para as molduras) 242 × 8 = 245 B (32 TB) s´o para a prim´aria Com pagina¸c˜ao tripla, 32 bits para a p´agina prim´aria e 10 para a secund´aria e terci´aria 232 × 8 = 32GB somente para a prim´aria Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 20 / 45
  • 24. Tabelas de P´aginas Invertidas Que fazer? Depende da arquitetura Usar 4 n´ıveis (x86-64 – AMD, depois adotada pela Intel) Com 22-10-10-10-12 bits, temos 222 × 8 = 32MB Usar uma tabela de p´aginas invertida (PowerPC, UltraSPARC e IA-64 – Itanium) Tabela que possui uma entrada por moldura f´ısica Em vez de uma entrada por p´agina no espa¸co virtual Indexada pela moldura A entrada registra que p´agina virtual esta localizada na moldura Com informa¸c˜oes sobre o processo que possui essa p´agina Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 21 / 45
  • 25. Tabelas de P´aginas Invertidas Poupam muito espa¸co quando o espa¸co virtual ´e muito maior que o f´ısico Ex: Endere¸cos virtuais de 64 bits e p´agina de 4 KB Em 1 GB de RAM, a tabela requer t˜ao somente o suficiente para mapear a mem´oria f´ısica Nesse caso, 1 GB / 4 KB = 262.144 entradas (com 32b, total de 1 MB) N˜ao depende do tamanho do espa¸co de endere¸camento virtual Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 22 / 45
  • 26. Tabelas de P´aginas Invertidas Modelo de p´agina ´unica ou multin´ıvel: Cada processo tem uma tabela de p´aginas associada a ele → classifica¸c˜ao feita pelo endere¸co virtual Modelo de p´agina invertida: O SO mant´em uma ´unica tabela para as molduras de p´aginas da mem´oria Cada entrada consiste no endere¸co virtual da p´agina armazenada naquela moldura, com informa¸c˜oes sobre o processo dono da p´agina virtual Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 23 / 45
  • 27. Tabelas de P´aginas Invertidas Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 24 / 45
  • 28. Tabelas de P´aginas Invertidas Problema: Tradu¸c˜ao virtual → f´ısica ´e muito mais dif´ıcil Quando o processo n referencia a p´agina virtual p, o hardware n˜ao consegue mais encontrar a p´agina f´ısica usando p como ´ındice Deve buscar em toda a tabela invertida por uma entrada (n,p) Se encontrar, gera o endere¸co f´ısico Faz isso em cada referˆencia `a mem´oria, e n˜ao somente em page faults Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 25 / 45
  • 29. Tabelas de P´aginas Invertidas Que fazer ent˜ao? Usar a TLB para guardar as p´aginas mais acessadas Caso a p´agina buscada n˜ao esteja na TLB, devemos ainda assim procurar em toda a tabela invertida Para auxiliar nessa busca, podemos ter uma tabela de espalhamento (hash) nos endere¸cos virtuais Todas as p´aginas virtuais atualmente presentes na mem´oria e que tiverem o mesmo valor de hash ser˜ao encadeadas juntas Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 26 / 45
  • 30. Tabelas de P´aginas Invertidas em Hash Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 27 / 45
  • 31. Tabelas de P´aginas Invertidas em Hash Buscas na tabela invertida s˜ao feitas atrav´es da tabela de hash, com o valor de hash calculado a partir do endere¸co virtual Uma vez encontrado o n´umero da moldura (a partir da busca na lista correspondente `a p´agina virtual), o par (virtual, f´ısico) ´e armazenado na TLB Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 28 / 45
  • 32. Tabelas de P´aginas em Hash Funcionamento: O endere¸co de pagina virtual ´e usado para c´alculo do hash Esse endere¸co ´e comparado a cada elemento da lista correspondente Se for encontrado, o campo da moldura ´e usado no endere¸co f´ısico Se n˜ao, page fault Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 29 / 45
  • 33. Tabelas de P´aginas Invertidas em Hash E qual o tamanho de cada lista? Se a tabela de hash tiver o mesmo n´umero de entradas que o de molduras, o comprimento m´edio de cada lista ser´a de somente um par p´agina/moldura Agilizando assim o mapeamento Voltamos a ter acesso por meio do endere¸co virtual, com economia de espa¸co (embora gaste processamento com a fun¸c˜ao de hash) Ao encontrar a moldura, a nova dupla (virtual, f´ısica) ´e inserida na TLB Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 30 / 45
  • 34. Que p´agina devemos substituir? Pol´ıtica de Substitui¸c˜ao Local: Somente p´aginas dos pr´oprios processos s˜ao utilizadas na troca Ex: page fault no processo A Escolha a usada menos recentemente dentre as molduras usadas por A idade = instante de ´ultimo acesso, desde o in´ıcio do processo Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 31 / 45
  • 35. Que p´agina devemos substituir? Pol´ıtica de Substitui¸c˜ao Local: Somente p´aginas dos pr´oprios processos s˜ao utilizadas na troca Ex: page fault no processo A Escolha a usada menos recentemente dentre as molduras usadas por A idade = instante de ´ultimo acesso, desde o in´ıcio do processo Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 31 / 45
  • 36. Que p´agina devemos substituir? Pol´ıtica de Substitui¸c˜ao Local: Somente p´aginas dos pr´oprios processos s˜ao utilizadas na troca Ex: page fault no processo A Escolha a usada menos recentemente dentre as molduras usadas por A Aloca a cada processo fra¸c˜ao fixa da mem´oria idade = instante de ´ultimo acesso, desde o in´ıcio do processo Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 31 / 45
  • 37. Que p´agina devemos substituir? Pol´ıtica de Substitui¸c˜ao Local: Limita cada processo a um n´umero fixo de p´aginas (fra¸c˜ao fixa da mem´oria) Dificuldade: definir quantas p´aginas cada processo pode utilizar Se o processo usar menos que as previstas → desperd´ıcio Se usar mais que o previsto (ou galgar mais mem´oria enquanto executa) → muitas trocas (ultrapagina¸c˜ao – thrashing), mesmo havendo molduras dispon´ıveis Thrashing: diz-se de um processo que gasta mais tempo paginando que executando Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 32 / 45
  • 38. Que p´agina devemos substituir? Pol´ıtica de Substitui¸c˜ao Global: P´aginas de todos os processos s˜ao utilizadas na troca Ex: page fault no processo A Escolha a mais antiga dentre as molduras dispon´ıveis Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 33 / 45
  • 39. Que p´agina devemos substituir? Pol´ıtica de Substitui¸c˜ao Global: P´aginas de todos os processos s˜ao utilizadas na troca Ex: page fault no processo A Escolha a mais antiga dentre as molduras dispon´ıveis Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 33 / 45
  • 40. Que p´agina devemos substituir? Pol´ıtica de Substitui¸c˜ao Global: P´aginas de todos os processos s˜ao utilizadas na troca Ex: page fault no processo A Escolha a mais antiga dentre as molduras dispon´ıveis Processos sem fra¸c˜ao fixa da mem´oria Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 33 / 45
  • 41. Que p´agina devemos substituir? Pol´ıtica de Substitui¸c˜ao Global: Problema: processos com menor prioridade podem ter um n´umero muito reduzido de p´aginas, e com isso, acontecem muitas faltas de p´aginas → thrashing Ainda assim, em geral funcionam melhor que os locais Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 34 / 45
  • 42. Quantas molduras alocar? Aloca¸c˜ao fixa ou est´atica: Cada processo tem um n´umero m´aximo de molduras, definido quando o processo ´e criado Em um page fault, considera apenas molduras do pr´oprio processo O limite pode ser igual para todos os processos, ou seguir alguma pol´ıtica de distribui¸c˜ao Vantagem: simplicidade Desvantagens: N´umero muito pequeno de molduras pode causar muita pagina¸c˜ao – thrashing N´umero muito grande de molduras causa desperd´ıcio de mem´oria principal Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 35 / 45
  • 43. Quantas molduras alocar? Aloca¸c˜ao vari´avel ou dinˆamica: N´umero de molduras alocadas ao processo varia durante sua execu¸c˜ao Associada aos algoritmos com pol´ıtica de substitui¸c˜ao global Algoritmo: PFF (page faut frequency) Mede a frequˆencia de faltas de p´agina – se alta, aumenta o volume de molduras, se baixa, reduz esse limite Controla t˜ao somente o tamanho do conjunto de aloca¸c˜ao Vantagem: processos com elevada taxa de pagina¸c˜ao podem ter seu limite de molduras ampliado; e processos com baixa taxa de pagina¸c˜ao podem ter seu limite de molduras reduzido Desvantagem: monitoramento constante Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 36 / 45
  • 44. Estrat´egias de Pagina¸c˜ao Pagina¸c˜ao simples: Todas as p´aginas virtuais do processo s˜ao carregadas para a mem´oria principal Assim, sempre todas as p´aginas s˜ao v´alidas Pagina¸c˜ao por demanda (Demand Paging): Processos come¸cam com nenhuma p´agina na mem´oria Assim que a CPU tenta executar a primeira instru¸c˜ao, gera um page fault O S.O. traz a p´agina que falta `a mem´oria Mais usada hoje Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 37 / 45
  • 45. Estrat´egias de Pagina¸c˜ao Pagina¸c˜ao por demanda (Demand Paging): Apenas as p´aginas efetivamente acessadas pelo processo s˜ao carregadas na mem´oria principal Quais p´aginas virtuais foram carregadas? Indicado pelo bit de residˆencia (ou referˆencia) Na pagina¸c˜ao por demanda as p´aginas s˜ao carregadas na mem´oria somente quando s˜ao necess´arias Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 38 / 45
  • 46. Troca de P´aginas Relembrando... Quando ocorre um page fault Se todas as molduras estiverem ocupadas, o S.O. escolhe uma p´agina para eliminar → p´agina v´ıtima A escolha pode ser aleat´oria Ser´a melhor escolher uma p´agina que n˜ao seja muito usada Linux: O kernel e o mapa de mem´oria s˜ao fixos – suas p´aginas nunca s˜ao exclu´ıdas Se essa p´agina foi modificada enquanto estava na mem´oria, deve ser reescrita no disco Se n˜ao tiver sido modificada, pode apenas ser sobrescrita Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 39 / 45
  • 47. Algoritmos de Troca de P´aginas ´Otimo NRU (Not Recently Used) FIFO (First-in First-out) Segunda Chance Rel´ogio LRU (Least Recently Used) Working set WSClock (Working Set Clock) Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 40 / 45
  • 48. Algoritmo ´Otimo Cada p´agina ´e marcada com o n´umero de instru¸c˜oes que ser˜ao executadas antes que a p´agina seja referenciada Retira da mem´oria a p´agina que tem menos chance de ser referenciada (maior n´umero de instru¸c˜oes faltantes) Substitui, dentre as p´aginas atuais, a que ser´a referenciada por ´ultimo Adia ao m´aximo a pr´oxima falta de p´agina Praticamente imposs´ıvel de se saber – Impratic´avel Usado em simula¸c˜oes para compara¸c˜ao com outros algoritmos Executando-se o programa e guardando suas referˆencias `as p´aginas, para ent˜ao testar na segunda execu¸c˜ao Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 41 / 45
  • 49. NRU – Not Recently Used Classifica as p´aginas com frames atualmente na mem´oria: Usa os bits de status (associados a cada p´agina) da tabela de p´aginas → R(eferenciada) e M(odificada) Classe 0 (00) → n˜ao referenciada, n˜ao modificada Classe 1 (01) → n˜ao referenciada, modificada Classe 2 (10) → referenciada, n˜ao modificada Classe 3 (11) → referenciada, modificada Referenciada (bit 1) → lida ou escrita Modificada (bit 1) → escrita Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 42 / 45
  • 50. NRU – Not Recently Used R e M s˜ao atualizados a cada referˆencia `a mem´oria Armazenados em cada entrada da tabela de p´agina Seu valor ´e determinado pelo hardware Quando um processo ´e iniciado, ambos R e M s˜ao 0 para todas suas p´aginas Periodicamente, o bit R ´e limpo para diferenciar as p´aginas que n˜ao foram referenciadas recentemente Opera¸c˜ao feita a cada interrup¸c˜ao de rel´ogio (em geral 20ms) O bit M n˜ao ´e limpo, pois o S.O. precisa saber se deve escrever a p´agina no disco Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 43 / 45
  • 51. NRU – Not Recently Used Quando ocorre uma page fault: Remove aleatoriamente uma p´agina, escolhendo dentre as classes mais baixas → bits 00, 01, 10, 11 D´a preferˆencia a quem n˜ao foi recentemente usada e n˜ao precisa voltar ao disco Vantagens: F´acil de entender, eficiente para implementar e fornece bom desempenho Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 44 / 45
  • 52. Referˆencias Adicionais http://pages.cs.wisc.edu/˜solomon/cs537/html/paging.html http://en.wikipedia.org/wiki/Page replacement algorithm http://www.cs.uic.edu/˜jbell/CourseNotes/ OperatingSystems/9 VirtualMemory.html Norton Trevisan Roman Aula 15 – TLB, Aloca¸c˜ao e Troca de P´aginas 16 de outubro de 2017 45 / 45