SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Aula 14 – Pagina¸c˜ao
Norton Trevisan Roman
9 de outubro de 2017
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 1 / 47
Mem´oria Virtual – Pagina¸c˜ao
E se um programa referenciar
um endere¸co n˜ao mapeado?
Ex: MOV REG, 32780
Byte 12 da p´agina 8 (32768 + 12)
A MMU verifica que a p´agina
n˜ao est´a mapeada
Atrav´es do bit na tabela
For¸ca o desvio da CPU para o
S.O. (trap) – page fault
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 2 / 47
Mem´oria Virtual – Pagina¸c˜ao
O S.O. toma uma moldura
pouco usada e escreve seu
conte´udo no disco
Carrega a p´agina rec´em
referenciada na moldura (frame)
rec´em liberada
Atualiza o mapeamento na tabela de
p´aginas
Reinicia a instru¸c˜ao aprisionada na
trap (que causou a trap)
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 3 / 47
Mem´oria Virtual – Pagina¸c˜ao
Ex: MOV REG, 32780
(p´agina 8)
Se o SO decidir usar a moldura
1, dever´a carregar a p´agina 8 a
partir do endere¸co f´ısico 4096
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 4 / 47
Mem´oria Virtual – Pagina¸c˜ao
Ex: MOV REG, 32780
(p´agina 8)
Se o SO decidir usar a moldura
1, dever´a carregar a p´agina 8 a
partir do endere¸co f´ısico 4096
Na MMU, marca a entrada, na
tabela de p´aginas, da p´agina 1
como “n˜ao mapeada”
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 4 / 47
Mem´oria Virtual – Pagina¸c˜ao
Ex: MOV REG, 32780
(p´agina 8)
Em seguida marca, na tabela de
p´aginas, a entrada da p´agina 8
como “mapeada”
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 5 / 47
Mem´oria Virtual – Pagina¸c˜ao
Ex: MOV REG, 32780
(p´agina 8)
Em seguida marca, na tabela de
p´aginas, a entrada da p´agina 8
como “mapeada”
Quando a instru¸c˜ao que causou a
interrup¸c˜ao for reexecutada, a
MMU transformar´a o endere¸co
virtual 32780 (32768 + 12) no
f´ısico 4108 (4096 + 12)
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 5 / 47
Mem´oria Virtual – Tabela de P´aginas
Uma vez que o mapeamento ´e feito pela MMU,
como a MMU busca um endere¸co?
Ideal: usar parte do
endere¸co virtual
como ´ındice na
tabela, onde est´a o
endere¸co-base da
moldura
correspondente na
mem´oria
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 6 / 47
Mem´oria Virtual – Tabela de P´aginas
E como fazer isso?
Use tamanhos de p´agina que sejam potˆencias de 2
4K = 4096 = 212
0k a 4095B → 000000000000000 a 000111111111111
4k a 8191B → 001000000000000 a 001111111111111
8k a 12287B → 010000000000000 a 010111111111111
12k a 16383B → 011000000000000 a 011111111111111
. . .
Os bits mais significativos (vermelho e sublinhado)
s˜ao o n´umero da p´agina
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 7 / 47
Mem´oria Virtual – Tabela de P´aginas
E os endere¸cos dentro da p´agina?
Use os bits al´em do limite da p´agina (em preto, no
exemplo anterior)
Ex: 8196
M´ultiplo de 4k mais pr´oximo: 2 (4k × 2 = 8192)
001000000000000
001000000000000 (8192 – base da p´agina)
+ 000000000000100 (4 – deslocamento)
001000000000100 (8196)
Apenas copiou-se bits – nenhuma opera¸c˜ao aritm´etica
envolvida
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 8 / 47
Mem´oria Virtual – Tabela de P´aginas
Adicionar o deslocamento n˜ao muda os bits da base
da p´agina
Se elas forem potˆencia de 2
Ex: P´aginas de 4KB
Permitem endere¸cos internos `a p´agina de 0 a 4095
000111111111110 (4094)
+ 000000000000001 (1)
000111111111111 (4095)
+ 000000000000001 (1)
001000000000000 (4096) – mudou de p´agina
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 9 / 47
Mem´oria Virtual – Tabela de P´aginas
Parte em vermelho:
Endere¸co-base da p´agina (montado zerando-se a parte em
preto)
Varia, na hora de mapear p´aginas a suas respectivas
molduras
Parte em preto:
Deslocamento (offset)
N˜ao varia → um endere¸co que estava n bytes acima da base
da p´agina estar´a os mesmos n bytes acima da base da
moldura
O deslocamento ´e ent˜ao o quanto acima da base da p´agina o
endere¸co est´a
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 10 / 47
Mem´oria Virtual – Tabela de P´aginas
Ex: Suponha uma MMU que implemente o seguinte
mapeamento de p´aginas:
Mapeamento MMU
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 11 / 47
Mem´oria Virtual – Tabela de P´aginas
Ex: Endere¸co 8196
0010000000000100
MMU com 16 p´aginas de
4KB
Endere¸co virtual de 16 bits
(65536 B)
A tabela tem 16 entradas
(0000 a 1111)
Hardware com 8 frames
(de 4KB)
Endere¸co f´ısico de 15 bits
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 12 / 47
Mem´oria Virtual – Tabela de P´aginas
Usamos os 4 bits mais
altos do endere¸co
virtual como ´ındice na
tabela (a base da
p´agina)
´E o n´umero da p´agina
Se p´agina estiver na RAM
(Bit presente/ ausente = 1)
O endere¸co f´ısico pode ser
montado
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 13 / 47
Mem´oria Virtual – Tabela de P´aginas
Montando o endere¸co
f´ısico
O no
da moldura de
p´agina (110) ´e copiado
para os trˆes bits mais
significativos do endere¸co
de sa´ıda (real, de 15 bits),
juntamente com o
deslocamento (sem
altera¸c˜ao)
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 14 / 47
Mem´oria Virtual – Tabela de P´aginas
Montando o endere¸co
f´ısico
O registrador de sa´ıda
envia ent˜ao esse endere¸co
`a mem´oria, via
barramento
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 15 / 47
Mem´oria Virtual – Tabela de P´aginas
Se p´agina n˜ao estiver
na RAM
(Bit presente/ausente =
0)
Executa uma trap (page
fault) → Desvia ao S.O.
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 16 / 47
Mem´oria Virtual – Tabela de P´aginas
O endere¸co virtual ´e ent˜ao dividido em:
N´umero de p´agina (p) – usado como ´ındice para a tabela de
p´aginas, que cont´em o endere¸co da base da moldura
correspondente na mem´oria f´ısica
Deslocamento de p´agina (d) – combinado com o endere¸co
da base para definir o endere¸co de mem´oria f´ısica, que ´e
enviado ao barramento de mem´oria
Para determinado espa¸co de endere¸co l´ogico 2m
e tamanho
de p´agina 2n
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 17 / 47
Mem´oria Virtual – Tabela de P´aginas
Note que, embora o mapeamento seja
diretamente entre p´aginas e molduras,
todo o conte´udo dentro delas ´e
indiretamente mapeado tamb´em
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 18 / 47
Pagina¸c˜ao – Em Suma
Divida a mem´oria f´ısica em blocos de tamanho fixo,
denominados molduras
Divida a mem´oria l´ogica em blocos do mesmo
tamanho, denominados p´aginas
Acompanhe todas as molduras livres
Configure uma tabela de p´aginas para traduzir de
endere¸cos l´ogicos para f´ısicos
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 19 / 47
Mem´oria Virtual – Pagina¸c˜ao
Problemas:
Fragmenta¸c˜ao interna – sobra espa¸co na p´agina
Defini¸c˜ao do tamanho das p´aginas;
Geralmente a MMU que define e n˜ao o SO
Transferˆencias com o disco s˜ao feitas geralmente uma
p´agina por vez
P´aginas maiores: leitura mais eficiente (do disco), tabela
menor, mas maior fragmenta¸c˜ao interna
P´aginas menores: leitura menos eficiente, tabela maior, mas
menor fragmenta¸c˜ao interna
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 20 / 47
Entrada na Tabela de P´aginas
Depende muito do hardware
Em geral, 32 bits, divididos da seguinte maneira:
N´umero da moldura de p´agina:
Identifica a moldura correspondente `a p´agina
Campo mais importante
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 21 / 47
Entrada na Tabela de P´aginas
Em geral, 32 bits, divididos da seguinte maneira:
Bit de Residˆencia (Presente/ausente):
Se valor igual 1, ent˜ao entrada v´alida para uso
Se valor igual 0, ent˜ao entrada inv´alida, pois a p´agina virtual
correspondente n˜ao est´a na mem´oria (acess´a-la causar´a page fault)
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 22 / 47
Entrada na Tabela de P´aginas
Em geral, 32 bits, divididos da seguinte maneira:
Bits de Prote¸c˜ao:
Indicam tipos de acessos permitidos `a p´agina:
1 bit → 0 – leitura/escrita
1 – leitura
3 bits → 1o
bit – Leitura
2o
bit – Escrita
3o
bit – Execu¸c˜ao
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 23 / 47
Entrada na Tabela de P´aginas
Em geral, 32 bits, divididos da seguinte maneira:
Bit de Modifica¸c˜ao (ou bit sujo):
Controla o uso da p´agina
Se p´agina foi escrita, valor igual a 1 – a moldura deve copiada para
o disco, caso seja removida da mem´oria
Se valor igual a 0, p´agina n˜ao foi modificada (est´a limpa) – a p´agina
´e abandonada, j´a que a c´opia em disco ´e v´alida
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 24 / 47
Entrada na Tabela de P´aginas
Em geral, 32 bits, divididos da seguinte maneira:
Bit de Referˆencia:
Tamb´em controla o uso da p´agina
Quando a p´agina ´e referenciada (para leitura ou escrita), o hardware
faz o bit ser 1
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 25 / 47
Entrada na Tabela de P´aginas
Em geral, 32 bits, divididos da seguinte maneira:
Bit de Referˆencia:
Auxilia o SO na escolha da p´agina que deve deixar a RAM, em caso
de page fault – molduras que n˜ao est˜ao em uso s˜ao melhores
candidatas a sair
Em um dado intervalo de tempo, uma interrup¸c˜ao do clock faz o bit
ser 0 (para todas as entradas) – apenas p´aginas referenciadas dentro
do intervalo de clock s˜ao marcadas
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 26 / 47
Entrada na Tabela de P´aginas
Em geral, 32 bits, divididos da seguinte maneira:
Bit de Cache:
Permite desabilitar o mecanismo de cache para a p´agina
Necess´ario para p´aginas que acessam registradores de dispositivos,
em vez da mem´oria – O hardware deve acompanhar diretamente o
dispositivo (Ex: E/S), e n˜ao usar uma c´opia em cache
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 27 / 47
Tabela de P´aginas – Implementa¸c˜ao
Cada processo tem sua
pr´opria tabela
Cada um tem seu pr´oprio espa¸co
de endere¸camento
Cada um acha que come¸ca em
uma mesma posi¸c˜ao
Deve residir no BCP do processo
De fato, ponteiros para uma
estrutura no kernel
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 28 / 47
Tabela de P´aginas – Implementa¸c˜ao
Uma vez que a tabela reside no espa¸co do processo,
e o mapeamento ´e feito pela MMU, como se d´a a
liga¸c˜ao entre eles?
Uma possibilidade ´e ter a tabela na
forma de um arranjo de
registradores, na MMU
Com uma entrada para cada p´agina
virtual
Indexado pelo n´umero da p´agina
Lembre que a tabela tem tamanho fixo
pr´e-definido
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 29 / 47
Tabela de P´aginas – Implementa¸c˜ao
Quando um processo ´e
inicializado, o SO carrega os
registradores com a tabela de
p´aginas desse processo
Vinda da mem´oria
Vantagem: n˜ao requer referˆencias
`a mem´oria durante o
mapeamento (ap´os carregar a
tabela)
Desvantagens:
M´etodo caro, se a tabela for grande
A cada troca de contexto deve-se carregar toda a tabela →
problema de desempenho
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 30 / 47
Tabela de P´aginas – Implementa¸c˜ao
Outra possibilidade seria manter a tabela
inteiramente na mem´oria
O hardware s´o precisa de um ´unico registrador, que aponte
para o in´ıcio da tabela
Em uma mudan¸ca de contexto, muda-se apenas esse registrador
Algumas vezes h´a 2 registradores
Desvantagem:
Requer referˆencias extras `a mem´oria (para ler as entradas na tabela)
durante a execu¸c˜ao de cada instru¸c˜ao
Mais lenta
Vantagem:
Acomoda tabelas grandes
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 31 / 47
Tabela de P´aginas na Mem´oria Principal
Com 2 registradores associados:
Registrador de base da tabela de p´agina (PTBR)
Page table base register
Aponta para o in´ıcio da tabela de p´agina, indicando o endere¸co f´ısico
de mem´oria onde a tabela est´a alocada
No x86, tipicamente os 20 bits mais altos do registrador CR3 s˜ao
usados como PTBR (usa um esquema de p´aginas m´ultiplas –
veremos mais adiante)
Registrador de tamanho da tabela de p´agina (PTLR)
Existente apenas em alguns sistemas
Page-table length register
Indica tamanho da tabela de p´agina (n´umero de entradas da tabela
→ n´umero de p´aginas)
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 32 / 47
Tabela de P´aginas na Mem´oria Principal
Nesse esquema, cada acesso de dado/instru¸c˜ao
exige dois acessos `a mem´oria:
Um para a tabela de p´agina e um para o dado/instru¸c˜ao
Cada acesso `a mem´oria, feito no programa, se transforma
em 2
Contudo, a maioria dos programas tende a fazer um
grande n´umero de referˆencias a um pequeno n´umero
de p´aginas
Apenas uma fra¸c˜ao pequena das entradas na tabela s˜ao lidas
com grande frequˆencia
O que fazer?
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 33 / 47
Mem´oria Associativa (TLB)
Solu¸c˜ao:
O problema dos dois acessos `a mem´oria pode ser
solucionado pelo uso de um cache de hardware
especial para pesquisa r´apida
Geralmente localizado dentro da MMU
Chamado mem´oria associativa ou translation lookaside
buffers (TLBs)
Mapeia endere¸cos virtuais para endere¸cos f´ısicos sem ter que
passar pela tabela de p´aginas na mem´oria principal
Consiste em um pequeno n´umero de entradas, cada uma
com informa¸c˜oes sobre uma p´agina
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 34 / 47
Mem´oria Associativa (TLB)
Valida = 1 → a
p´agina est´a em uso
V´alida = 0 → n˜ao
est´a em uso (ex:
em uma troca de
processo, mas n˜ao
de thread, algumas
se tornam inv´alidas)
Usado para
gerenciamento da
TLB: se o processo
usar menos p´aginas
que as entradas
dispon´ıveis na TLB,
invalida-se algumas
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 35 / 47
Mem´oria Associativa (TLB)
Modificada = 1 →
a p´agina foi
modificada
P´agina virtual:
n´umero da p´agina
virtual
Com exce¸c˜ao desse
´ultimo e de
“v´alida”, todos os
demais tamb´em
est˜ao na tabela de
p´aginas
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 36 / 47
Mem´oria Associativa (TLB)
Funcionamento:
Quando um
endere¸co virtual
chega `a MMU, o
hardware verifica se
sua p´agina virtual
est´a na TLB
Compara a todas as
entradas
simultaneamente
(opera¸c˜ao feita no
hardware)
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 37 / 47
Mem´oria Associativa (TLB)
Funcionamento:
Se estiver na TLB
(hit), e os bits de
prote¸c˜ao n˜ao forem
violados, a moldura
´e obtida da TLB,
sem passar pela
tabela de p´aginas
Se violar algum dos
bits de prote¸c˜ao ´e
gerada uma falha de prote¸c˜ao (protection fault)
Desvia ao S.O. via trap
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 38 / 47
Mem´oria Associativa (TLB)
Funcionamento:
Se a p´agina virtual
n˜ao estiver na TLB
A MMU busca na
tabela de p´aginas
Remove uma das
entradas da TLB,
devolvendo-a `a
tabela na mem´oria
(de fato, apenas o bit de modificada, pois o resto –
exceto “v´alida” – j´a est´a l´a)
Coloca nessa entrada a p´agina que acabou de buscar
Se essa p´agina for usada novamente, estar´a na TLB
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 39 / 47
Mem´oria Associativa (TLB)
O gerenciamento da TLB pode ser:
Por hardware (X86)
Maior rapidez
Ocupa espa¸co f´ısico
que poderia ser
disponibilizado para
outras fun¸c˜oes (cache
etc)
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 40 / 47
TLB – Gerenciamento por Hardware
P´agina inv´alida:
MMU gera uma
interrup¸c˜ao de
prote¸c˜ao e aciona o
sistema operacional
Se a p´agina estiver
fora do espa¸co de
endere¸camento do processo, o processo ´e abortado
Se a p´agina ainda n˜ao foi carregada na mem´oria principal,
ocorre uma falta de p´agina (page fault)
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 41 / 47
TLB – Gerenciamento por Hardware
P´agina inv´alida:
O processo ´e suspenso
e seu descritor ´e
inserido na fila dos
processos esperando
uma p´agina virtual
Uma moldura livre (na mem´oria) deve ser alocada
A p´agina virtual acessada deve ser localizada no disco
Opera¸c˜ao de leitura de disco
Indicando o endere¸co da p´agina virtual no disco e o endere¸co da
moldura alocada
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 42 / 47
TLB – Gerenciamento por Hardware
P´agina inv´alida:
Ap´os a leitura do
disco:
A tabela de p´aginas do
processo ´e corrigida para
indicar que a
p´agina virtual agora est´a v´alida e est´a na moldura alocada
Tarefa executada pelo Pager (rotina que carrega p´aginas especificas
de um processo do disco para a mem´oria principal)
O descritor do processo ´e retirado da fila especial e colocado na fila
de prontos (para execu¸c˜ao)
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 43 / 47
TLB – Gerenciamento por Hardware
Copy on write?
Quando um processo
faz um fork:
As p´aginas na
mem´oria que podem
ser modificadas tanto
pelo pai quanto
pelo filho s˜ao marcadas como C.o.W.
N˜ao h´a, inicialmente, m´ultiplas c´opias delas na mem´oria
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 44 / 47
Copy on Write
Quando um processo modifica a mem´oria, o SO faz
a c´opia efetiva
Mudan¸cas em um processo n˜ao s˜ao vis´ıveis ao outro
Copia ao filho somente as p´aginas necess´arias
Implementada pela notifica¸c˜ao da MMU que certas
p´aginas do processo s˜ao read-only
Da´ı a falha de prote¸c˜ao ao se escrever nelas
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 45 / 47
Copy on Write
Antes de modificar C
Depois de modificar C
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 46 / 47
Referˆencias Adicionais
http:
//en.wikipedia.org/wiki/Control_register
http://www.cs.uic.edu/~jbell/CourseNotes/
OperatingSystems/9_VirtualMemory.html
http:
//en.wikipedia.org/wiki/Copy-on-write
Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 47 / 47

Mais conteúdo relacionado

Mais procurados

Guia com mais de 500 comandos do linux
Guia com mais de 500 comandos do linuxGuia com mais de 500 comandos do linux
Guia com mais de 500 comandos do linux
Kalanzans
 
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
Léia de Sousa
 
Trabalho sobre as memórias ram
Trabalho sobre as memórias ramTrabalho sobre as memórias ram
Trabalho sobre as memórias ram
jfranca1984
 
Softwares De RecuperaçãO Do Disco RíGido
Softwares De RecuperaçãO Do Disco RíGidoSoftwares De RecuperaçãO Do Disco RíGido
Softwares De RecuperaçãO Do Disco RíGido
Bruna
 

Mais procurados (19)

(ACH2044) Sistemas Operacionais - Aula 04
(ACH2044) Sistemas Operacionais - Aula 04(ACH2044) Sistemas Operacionais - Aula 04
(ACH2044) Sistemas Operacionais - Aula 04
 
Ligacao Em Rede A Outros Sistemas Operativos
Ligacao Em Rede A Outros Sistemas OperativosLigacao Em Rede A Outros Sistemas Operativos
Ligacao Em Rede A Outros Sistemas Operativos
 
Gerenciamento memoria
Gerenciamento memoriaGerenciamento memoria
Gerenciamento memoria
 
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
 
Guia com mais de 500 comandos do linux
Guia com mais de 500 comandos do linuxGuia com mais de 500 comandos do linux
Guia com mais de 500 comandos do linux
 
Roteiro IOC 05
Roteiro IOC 05Roteiro IOC 05
Roteiro IOC 05
 
Discos
DiscosDiscos
Discos
 
Tutorial de discos
Tutorial de discosTutorial de discos
Tutorial de discos
 
Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoria
 
Memorias edo ddr 1 2 e 3 e dual channel
Memorias edo ddr 1 2 e 3 e dual channelMemorias edo ddr 1 2 e 3 e dual channel
Memorias edo ddr 1 2 e 3 e dual channel
 
Msdos vol3
Msdos vol3Msdos vol3
Msdos vol3
 
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
 
Msdos vol4
Msdos vol4Msdos vol4
Msdos vol4
 
Trabalho sobre as memórias ram
Trabalho sobre as memórias ramTrabalho sobre as memórias ram
Trabalho sobre as memórias ram
 
Linux
LinuxLinux
Linux
 
Softwares De RecuperaçãO Do Disco RíGido
Softwares De RecuperaçãO Do Disco RíGidoSoftwares De RecuperaçãO Do Disco RíGido
Softwares De RecuperaçãO Do Disco RíGido
 
Certificação LPI
Certificação LPICertificação LPI
Certificação LPI
 
A experiência (e a falta dela) em linux como um usuário doméstico
A experiência (e a falta dela) em linux como um usuário domésticoA experiência (e a falta dela) em linux como um usuário doméstico
A experiência (e a falta dela) em linux como um usuário doméstico
 
Memórias Ram
Memórias RamMemórias Ram
Memórias Ram
 

Mais de Norton 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

História concisa da literatura brasileira- Alfredo Bosi..pdf
História concisa da literatura brasileira- Alfredo Bosi..pdfHistória concisa da literatura brasileira- Alfredo Bosi..pdf
História concisa da literatura brasileira- Alfredo Bosi..pdf
GisellySobral
 
Regulamento do Festival de Teatro Negro - FESTIAFRO 2024 - 10ª edição - CEI...
Regulamento do Festival de Teatro Negro -  FESTIAFRO 2024 - 10ª edição -  CEI...Regulamento do Festival de Teatro Negro -  FESTIAFRO 2024 - 10ª edição -  CEI...
Regulamento do Festival de Teatro Negro - FESTIAFRO 2024 - 10ª edição - CEI...
Eró Cunha
 
Aspectos históricos da educação dos surdos.pptx
Aspectos históricos da educação dos surdos.pptxAspectos históricos da educação dos surdos.pptx
Aspectos históricos da educação dos surdos.pptx
profbrunogeo95
 
atividade para 3ª serie do ensino medi sobrw biotecnologia( transgenicos, clo...
atividade para 3ª serie do ensino medi sobrw biotecnologia( transgenicos, clo...atividade para 3ª serie do ensino medi sobrw biotecnologia( transgenicos, clo...
atividade para 3ª serie do ensino medi sobrw biotecnologia( transgenicos, clo...
WelitaDiaz1
 

Último (20)

EBPAL_Serta_Caminhos do Lixo final 9ºD (1).pptx
EBPAL_Serta_Caminhos do Lixo final 9ºD (1).pptxEBPAL_Serta_Caminhos do Lixo final 9ºD (1).pptx
EBPAL_Serta_Caminhos do Lixo final 9ºD (1).pptx
 
UFCD_10659_Ficheiros de recursos educativos_índice .pdf
UFCD_10659_Ficheiros de recursos educativos_índice .pdfUFCD_10659_Ficheiros de recursos educativos_índice .pdf
UFCD_10659_Ficheiros de recursos educativos_índice .pdf
 
História concisa da literatura brasileira- Alfredo Bosi..pdf
História concisa da literatura brasileira- Alfredo Bosi..pdfHistória concisa da literatura brasileira- Alfredo Bosi..pdf
História concisa da literatura brasileira- Alfredo Bosi..pdf
 
Tema de redação - A prática do catfish e seus perigos.pdf
Tema de redação - A prática do catfish e seus perigos.pdfTema de redação - A prática do catfish e seus perigos.pdf
Tema de redação - A prática do catfish e seus perigos.pdf
 
EB1 Cumeada Co(n)Vida à Leitura - Livros à Solta_Serta.pptx
EB1 Cumeada Co(n)Vida à Leitura - Livros à Solta_Serta.pptxEB1 Cumeada Co(n)Vida à Leitura - Livros à Solta_Serta.pptx
EB1 Cumeada Co(n)Vida à Leitura - Livros à Solta_Serta.pptx
 
662938.pdf aula digital de educação básica
662938.pdf aula digital de educação básica662938.pdf aula digital de educação básica
662938.pdf aula digital de educação básica
 
Formação T.2 do Modulo I da Formação HTML & CSS
Formação T.2 do Modulo I da Formação HTML & CSSFormação T.2 do Modulo I da Formação HTML & CSS
Formação T.2 do Modulo I da Formação HTML & CSS
 
Periodo da escravidAo O Brasil tem seu corpo na América e sua alma na África
Periodo da escravidAo O Brasil tem seu corpo na América e sua alma na ÁfricaPeriodo da escravidAo O Brasil tem seu corpo na América e sua alma na África
Periodo da escravidAo O Brasil tem seu corpo na América e sua alma na África
 
Química-ensino médio ESTEQUIOMETRIA.pptx
Química-ensino médio ESTEQUIOMETRIA.pptxQuímica-ensino médio ESTEQUIOMETRIA.pptx
Química-ensino médio ESTEQUIOMETRIA.pptx
 
Modelos de Inteligencia Emocional segundo diversos autores
Modelos de Inteligencia Emocional segundo diversos autoresModelos de Inteligencia Emocional segundo diversos autores
Modelos de Inteligencia Emocional segundo diversos autores
 
Nós Propomos! Sertã 2024 - Geografia C - 12º ano
Nós Propomos! Sertã 2024 - Geografia C - 12º anoNós Propomos! Sertã 2024 - Geografia C - 12º ano
Nós Propomos! Sertã 2024 - Geografia C - 12º ano
 
Proposta de redação Soneto de texto do gênero poema para a,usos do 9 ano do e...
Proposta de redação Soneto de texto do gênero poema para a,usos do 9 ano do e...Proposta de redação Soneto de texto do gênero poema para a,usos do 9 ano do e...
Proposta de redação Soneto de texto do gênero poema para a,usos do 9 ano do e...
 
APRENDA COMO USAR CONJUNÇÕES COORDENATIVAS
APRENDA COMO USAR CONJUNÇÕES COORDENATIVASAPRENDA COMO USAR CONJUNÇÕES COORDENATIVAS
APRENDA COMO USAR CONJUNÇÕES COORDENATIVAS
 
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptx
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptxSlides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptx
Slides Lição 7, CPAD, O Perigo Da Murmuração, 2Tr24.pptx
 
Regulamento do Festival de Teatro Negro - FESTIAFRO 2024 - 10ª edição - CEI...
Regulamento do Festival de Teatro Negro -  FESTIAFRO 2024 - 10ª edição -  CEI...Regulamento do Festival de Teatro Negro -  FESTIAFRO 2024 - 10ª edição -  CEI...
Regulamento do Festival de Teatro Negro - FESTIAFRO 2024 - 10ª edição - CEI...
 
Religiosidade de Assaré - Prof. Francisco Leite
Religiosidade de Assaré - Prof. Francisco LeiteReligiosidade de Assaré - Prof. Francisco Leite
Religiosidade de Assaré - Prof. Francisco Leite
 
Peça de teatro infantil: A cigarra e as formigas
Peça de teatro infantil: A cigarra e as formigasPeça de teatro infantil: A cigarra e as formigas
Peça de teatro infantil: A cigarra e as formigas
 
Slides Lição 7, Betel, Ordenança para uma vida de fidelidade e lealdade, 2Tr2...
Slides Lição 7, Betel, Ordenança para uma vida de fidelidade e lealdade, 2Tr2...Slides Lição 7, Betel, Ordenança para uma vida de fidelidade e lealdade, 2Tr2...
Slides Lição 7, Betel, Ordenança para uma vida de fidelidade e lealdade, 2Tr2...
 
Aspectos históricos da educação dos surdos.pptx
Aspectos históricos da educação dos surdos.pptxAspectos históricos da educação dos surdos.pptx
Aspectos históricos da educação dos surdos.pptx
 
atividade para 3ª serie do ensino medi sobrw biotecnologia( transgenicos, clo...
atividade para 3ª serie do ensino medi sobrw biotecnologia( transgenicos, clo...atividade para 3ª serie do ensino medi sobrw biotecnologia( transgenicos, clo...
atividade para 3ª serie do ensino medi sobrw biotecnologia( transgenicos, clo...
 

(ACH2044) Sistemas Operacionais - Aula 14

  • 1. Aula 14 – Pagina¸c˜ao Norton Trevisan Roman 9 de outubro de 2017 Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 1 / 47
  • 2. Mem´oria Virtual – Pagina¸c˜ao E se um programa referenciar um endere¸co n˜ao mapeado? Ex: MOV REG, 32780 Byte 12 da p´agina 8 (32768 + 12) A MMU verifica que a p´agina n˜ao est´a mapeada Atrav´es do bit na tabela For¸ca o desvio da CPU para o S.O. (trap) – page fault Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 2 / 47
  • 3. Mem´oria Virtual – Pagina¸c˜ao O S.O. toma uma moldura pouco usada e escreve seu conte´udo no disco Carrega a p´agina rec´em referenciada na moldura (frame) rec´em liberada Atualiza o mapeamento na tabela de p´aginas Reinicia a instru¸c˜ao aprisionada na trap (que causou a trap) Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 3 / 47
  • 4. Mem´oria Virtual – Pagina¸c˜ao Ex: MOV REG, 32780 (p´agina 8) Se o SO decidir usar a moldura 1, dever´a carregar a p´agina 8 a partir do endere¸co f´ısico 4096 Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 4 / 47
  • 5. Mem´oria Virtual – Pagina¸c˜ao Ex: MOV REG, 32780 (p´agina 8) Se o SO decidir usar a moldura 1, dever´a carregar a p´agina 8 a partir do endere¸co f´ısico 4096 Na MMU, marca a entrada, na tabela de p´aginas, da p´agina 1 como “n˜ao mapeada” Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 4 / 47
  • 6. Mem´oria Virtual – Pagina¸c˜ao Ex: MOV REG, 32780 (p´agina 8) Em seguida marca, na tabela de p´aginas, a entrada da p´agina 8 como “mapeada” Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 5 / 47
  • 7. Mem´oria Virtual – Pagina¸c˜ao Ex: MOV REG, 32780 (p´agina 8) Em seguida marca, na tabela de p´aginas, a entrada da p´agina 8 como “mapeada” Quando a instru¸c˜ao que causou a interrup¸c˜ao for reexecutada, a MMU transformar´a o endere¸co virtual 32780 (32768 + 12) no f´ısico 4108 (4096 + 12) Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 5 / 47
  • 8. Mem´oria Virtual – Tabela de P´aginas Uma vez que o mapeamento ´e feito pela MMU, como a MMU busca um endere¸co? Ideal: usar parte do endere¸co virtual como ´ındice na tabela, onde est´a o endere¸co-base da moldura correspondente na mem´oria Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 6 / 47
  • 9. Mem´oria Virtual – Tabela de P´aginas E como fazer isso? Use tamanhos de p´agina que sejam potˆencias de 2 4K = 4096 = 212 0k a 4095B → 000000000000000 a 000111111111111 4k a 8191B → 001000000000000 a 001111111111111 8k a 12287B → 010000000000000 a 010111111111111 12k a 16383B → 011000000000000 a 011111111111111 . . . Os bits mais significativos (vermelho e sublinhado) s˜ao o n´umero da p´agina Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 7 / 47
  • 10. Mem´oria Virtual – Tabela de P´aginas E os endere¸cos dentro da p´agina? Use os bits al´em do limite da p´agina (em preto, no exemplo anterior) Ex: 8196 M´ultiplo de 4k mais pr´oximo: 2 (4k × 2 = 8192) 001000000000000 001000000000000 (8192 – base da p´agina) + 000000000000100 (4 – deslocamento) 001000000000100 (8196) Apenas copiou-se bits – nenhuma opera¸c˜ao aritm´etica envolvida Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 8 / 47
  • 11. Mem´oria Virtual – Tabela de P´aginas Adicionar o deslocamento n˜ao muda os bits da base da p´agina Se elas forem potˆencia de 2 Ex: P´aginas de 4KB Permitem endere¸cos internos `a p´agina de 0 a 4095 000111111111110 (4094) + 000000000000001 (1) 000111111111111 (4095) + 000000000000001 (1) 001000000000000 (4096) – mudou de p´agina Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 9 / 47
  • 12. Mem´oria Virtual – Tabela de P´aginas Parte em vermelho: Endere¸co-base da p´agina (montado zerando-se a parte em preto) Varia, na hora de mapear p´aginas a suas respectivas molduras Parte em preto: Deslocamento (offset) N˜ao varia → um endere¸co que estava n bytes acima da base da p´agina estar´a os mesmos n bytes acima da base da moldura O deslocamento ´e ent˜ao o quanto acima da base da p´agina o endere¸co est´a Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 10 / 47
  • 13. Mem´oria Virtual – Tabela de P´aginas Ex: Suponha uma MMU que implemente o seguinte mapeamento de p´aginas: Mapeamento MMU Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 11 / 47
  • 14. Mem´oria Virtual – Tabela de P´aginas Ex: Endere¸co 8196 0010000000000100 MMU com 16 p´aginas de 4KB Endere¸co virtual de 16 bits (65536 B) A tabela tem 16 entradas (0000 a 1111) Hardware com 8 frames (de 4KB) Endere¸co f´ısico de 15 bits Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 12 / 47
  • 15. Mem´oria Virtual – Tabela de P´aginas Usamos os 4 bits mais altos do endere¸co virtual como ´ındice na tabela (a base da p´agina) ´E o n´umero da p´agina Se p´agina estiver na RAM (Bit presente/ ausente = 1) O endere¸co f´ısico pode ser montado Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 13 / 47
  • 16. Mem´oria Virtual – Tabela de P´aginas Montando o endere¸co f´ısico O no da moldura de p´agina (110) ´e copiado para os trˆes bits mais significativos do endere¸co de sa´ıda (real, de 15 bits), juntamente com o deslocamento (sem altera¸c˜ao) Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 14 / 47
  • 17. Mem´oria Virtual – Tabela de P´aginas Montando o endere¸co f´ısico O registrador de sa´ıda envia ent˜ao esse endere¸co `a mem´oria, via barramento Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 15 / 47
  • 18. Mem´oria Virtual – Tabela de P´aginas Se p´agina n˜ao estiver na RAM (Bit presente/ausente = 0) Executa uma trap (page fault) → Desvia ao S.O. Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 16 / 47
  • 19. Mem´oria Virtual – Tabela de P´aginas O endere¸co virtual ´e ent˜ao dividido em: N´umero de p´agina (p) – usado como ´ındice para a tabela de p´aginas, que cont´em o endere¸co da base da moldura correspondente na mem´oria f´ısica Deslocamento de p´agina (d) – combinado com o endere¸co da base para definir o endere¸co de mem´oria f´ısica, que ´e enviado ao barramento de mem´oria Para determinado espa¸co de endere¸co l´ogico 2m e tamanho de p´agina 2n Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 17 / 47
  • 20. Mem´oria Virtual – Tabela de P´aginas Note que, embora o mapeamento seja diretamente entre p´aginas e molduras, todo o conte´udo dentro delas ´e indiretamente mapeado tamb´em Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 18 / 47
  • 21. Pagina¸c˜ao – Em Suma Divida a mem´oria f´ısica em blocos de tamanho fixo, denominados molduras Divida a mem´oria l´ogica em blocos do mesmo tamanho, denominados p´aginas Acompanhe todas as molduras livres Configure uma tabela de p´aginas para traduzir de endere¸cos l´ogicos para f´ısicos Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 19 / 47
  • 22. Mem´oria Virtual – Pagina¸c˜ao Problemas: Fragmenta¸c˜ao interna – sobra espa¸co na p´agina Defini¸c˜ao do tamanho das p´aginas; Geralmente a MMU que define e n˜ao o SO Transferˆencias com o disco s˜ao feitas geralmente uma p´agina por vez P´aginas maiores: leitura mais eficiente (do disco), tabela menor, mas maior fragmenta¸c˜ao interna P´aginas menores: leitura menos eficiente, tabela maior, mas menor fragmenta¸c˜ao interna Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 20 / 47
  • 23. Entrada na Tabela de P´aginas Depende muito do hardware Em geral, 32 bits, divididos da seguinte maneira: N´umero da moldura de p´agina: Identifica a moldura correspondente `a p´agina Campo mais importante Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 21 / 47
  • 24. Entrada na Tabela de P´aginas Em geral, 32 bits, divididos da seguinte maneira: Bit de Residˆencia (Presente/ausente): Se valor igual 1, ent˜ao entrada v´alida para uso Se valor igual 0, ent˜ao entrada inv´alida, pois a p´agina virtual correspondente n˜ao est´a na mem´oria (acess´a-la causar´a page fault) Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 22 / 47
  • 25. Entrada na Tabela de P´aginas Em geral, 32 bits, divididos da seguinte maneira: Bits de Prote¸c˜ao: Indicam tipos de acessos permitidos `a p´agina: 1 bit → 0 – leitura/escrita 1 – leitura 3 bits → 1o bit – Leitura 2o bit – Escrita 3o bit – Execu¸c˜ao Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 23 / 47
  • 26. Entrada na Tabela de P´aginas Em geral, 32 bits, divididos da seguinte maneira: Bit de Modifica¸c˜ao (ou bit sujo): Controla o uso da p´agina Se p´agina foi escrita, valor igual a 1 – a moldura deve copiada para o disco, caso seja removida da mem´oria Se valor igual a 0, p´agina n˜ao foi modificada (est´a limpa) – a p´agina ´e abandonada, j´a que a c´opia em disco ´e v´alida Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 24 / 47
  • 27. Entrada na Tabela de P´aginas Em geral, 32 bits, divididos da seguinte maneira: Bit de Referˆencia: Tamb´em controla o uso da p´agina Quando a p´agina ´e referenciada (para leitura ou escrita), o hardware faz o bit ser 1 Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 25 / 47
  • 28. Entrada na Tabela de P´aginas Em geral, 32 bits, divididos da seguinte maneira: Bit de Referˆencia: Auxilia o SO na escolha da p´agina que deve deixar a RAM, em caso de page fault – molduras que n˜ao est˜ao em uso s˜ao melhores candidatas a sair Em um dado intervalo de tempo, uma interrup¸c˜ao do clock faz o bit ser 0 (para todas as entradas) – apenas p´aginas referenciadas dentro do intervalo de clock s˜ao marcadas Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 26 / 47
  • 29. Entrada na Tabela de P´aginas Em geral, 32 bits, divididos da seguinte maneira: Bit de Cache: Permite desabilitar o mecanismo de cache para a p´agina Necess´ario para p´aginas que acessam registradores de dispositivos, em vez da mem´oria – O hardware deve acompanhar diretamente o dispositivo (Ex: E/S), e n˜ao usar uma c´opia em cache Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 27 / 47
  • 30. Tabela de P´aginas – Implementa¸c˜ao Cada processo tem sua pr´opria tabela Cada um tem seu pr´oprio espa¸co de endere¸camento Cada um acha que come¸ca em uma mesma posi¸c˜ao Deve residir no BCP do processo De fato, ponteiros para uma estrutura no kernel Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 28 / 47
  • 31. Tabela de P´aginas – Implementa¸c˜ao Uma vez que a tabela reside no espa¸co do processo, e o mapeamento ´e feito pela MMU, como se d´a a liga¸c˜ao entre eles? Uma possibilidade ´e ter a tabela na forma de um arranjo de registradores, na MMU Com uma entrada para cada p´agina virtual Indexado pelo n´umero da p´agina Lembre que a tabela tem tamanho fixo pr´e-definido Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 29 / 47
  • 32. Tabela de P´aginas – Implementa¸c˜ao Quando um processo ´e inicializado, o SO carrega os registradores com a tabela de p´aginas desse processo Vinda da mem´oria Vantagem: n˜ao requer referˆencias `a mem´oria durante o mapeamento (ap´os carregar a tabela) Desvantagens: M´etodo caro, se a tabela for grande A cada troca de contexto deve-se carregar toda a tabela → problema de desempenho Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 30 / 47
  • 33. Tabela de P´aginas – Implementa¸c˜ao Outra possibilidade seria manter a tabela inteiramente na mem´oria O hardware s´o precisa de um ´unico registrador, que aponte para o in´ıcio da tabela Em uma mudan¸ca de contexto, muda-se apenas esse registrador Algumas vezes h´a 2 registradores Desvantagem: Requer referˆencias extras `a mem´oria (para ler as entradas na tabela) durante a execu¸c˜ao de cada instru¸c˜ao Mais lenta Vantagem: Acomoda tabelas grandes Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 31 / 47
  • 34. Tabela de P´aginas na Mem´oria Principal Com 2 registradores associados: Registrador de base da tabela de p´agina (PTBR) Page table base register Aponta para o in´ıcio da tabela de p´agina, indicando o endere¸co f´ısico de mem´oria onde a tabela est´a alocada No x86, tipicamente os 20 bits mais altos do registrador CR3 s˜ao usados como PTBR (usa um esquema de p´aginas m´ultiplas – veremos mais adiante) Registrador de tamanho da tabela de p´agina (PTLR) Existente apenas em alguns sistemas Page-table length register Indica tamanho da tabela de p´agina (n´umero de entradas da tabela → n´umero de p´aginas) Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 32 / 47
  • 35. Tabela de P´aginas na Mem´oria Principal Nesse esquema, cada acesso de dado/instru¸c˜ao exige dois acessos `a mem´oria: Um para a tabela de p´agina e um para o dado/instru¸c˜ao Cada acesso `a mem´oria, feito no programa, se transforma em 2 Contudo, a maioria dos programas tende a fazer um grande n´umero de referˆencias a um pequeno n´umero de p´aginas Apenas uma fra¸c˜ao pequena das entradas na tabela s˜ao lidas com grande frequˆencia O que fazer? Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 33 / 47
  • 36. Mem´oria Associativa (TLB) Solu¸c˜ao: O problema dos dois acessos `a mem´oria pode ser solucionado pelo uso de um cache de hardware especial para pesquisa r´apida Geralmente localizado dentro da MMU Chamado mem´oria associativa ou translation lookaside buffers (TLBs) Mapeia endere¸cos virtuais para endere¸cos f´ısicos sem ter que passar pela tabela de p´aginas na mem´oria principal Consiste em um pequeno n´umero de entradas, cada uma com informa¸c˜oes sobre uma p´agina Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 34 / 47
  • 37. Mem´oria Associativa (TLB) Valida = 1 → a p´agina est´a em uso V´alida = 0 → n˜ao est´a em uso (ex: em uma troca de processo, mas n˜ao de thread, algumas se tornam inv´alidas) Usado para gerenciamento da TLB: se o processo usar menos p´aginas que as entradas dispon´ıveis na TLB, invalida-se algumas Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 35 / 47
  • 38. Mem´oria Associativa (TLB) Modificada = 1 → a p´agina foi modificada P´agina virtual: n´umero da p´agina virtual Com exce¸c˜ao desse ´ultimo e de “v´alida”, todos os demais tamb´em est˜ao na tabela de p´aginas Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 36 / 47
  • 39. Mem´oria Associativa (TLB) Funcionamento: Quando um endere¸co virtual chega `a MMU, o hardware verifica se sua p´agina virtual est´a na TLB Compara a todas as entradas simultaneamente (opera¸c˜ao feita no hardware) Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 37 / 47
  • 40. Mem´oria Associativa (TLB) Funcionamento: Se estiver na TLB (hit), e os bits de prote¸c˜ao n˜ao forem violados, a moldura ´e obtida da TLB, sem passar pela tabela de p´aginas Se violar algum dos bits de prote¸c˜ao ´e gerada uma falha de prote¸c˜ao (protection fault) Desvia ao S.O. via trap Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 38 / 47
  • 41. Mem´oria Associativa (TLB) Funcionamento: Se a p´agina virtual n˜ao estiver na TLB A MMU busca na tabela de p´aginas Remove uma das entradas da TLB, devolvendo-a `a tabela na mem´oria (de fato, apenas o bit de modificada, pois o resto – exceto “v´alida” – j´a est´a l´a) Coloca nessa entrada a p´agina que acabou de buscar Se essa p´agina for usada novamente, estar´a na TLB Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 39 / 47
  • 42. Mem´oria Associativa (TLB) O gerenciamento da TLB pode ser: Por hardware (X86) Maior rapidez Ocupa espa¸co f´ısico que poderia ser disponibilizado para outras fun¸c˜oes (cache etc) Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 40 / 47
  • 43. TLB – Gerenciamento por Hardware P´agina inv´alida: MMU gera uma interrup¸c˜ao de prote¸c˜ao e aciona o sistema operacional Se a p´agina estiver fora do espa¸co de endere¸camento do processo, o processo ´e abortado Se a p´agina ainda n˜ao foi carregada na mem´oria principal, ocorre uma falta de p´agina (page fault) Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 41 / 47
  • 44. TLB – Gerenciamento por Hardware P´agina inv´alida: O processo ´e suspenso e seu descritor ´e inserido na fila dos processos esperando uma p´agina virtual Uma moldura livre (na mem´oria) deve ser alocada A p´agina virtual acessada deve ser localizada no disco Opera¸c˜ao de leitura de disco Indicando o endere¸co da p´agina virtual no disco e o endere¸co da moldura alocada Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 42 / 47
  • 45. TLB – Gerenciamento por Hardware P´agina inv´alida: Ap´os a leitura do disco: A tabela de p´aginas do processo ´e corrigida para indicar que a p´agina virtual agora est´a v´alida e est´a na moldura alocada Tarefa executada pelo Pager (rotina que carrega p´aginas especificas de um processo do disco para a mem´oria principal) O descritor do processo ´e retirado da fila especial e colocado na fila de prontos (para execu¸c˜ao) Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 43 / 47
  • 46. TLB – Gerenciamento por Hardware Copy on write? Quando um processo faz um fork: As p´aginas na mem´oria que podem ser modificadas tanto pelo pai quanto pelo filho s˜ao marcadas como C.o.W. N˜ao h´a, inicialmente, m´ultiplas c´opias delas na mem´oria Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 44 / 47
  • 47. Copy on Write Quando um processo modifica a mem´oria, o SO faz a c´opia efetiva Mudan¸cas em um processo n˜ao s˜ao vis´ıveis ao outro Copia ao filho somente as p´aginas necess´arias Implementada pela notifica¸c˜ao da MMU que certas p´aginas do processo s˜ao read-only Da´ı a falha de prote¸c˜ao ao se escrever nelas Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 45 / 47
  • 48. Copy on Write Antes de modificar C Depois de modificar C Norton Trevisan Roman Aula 14 – Pagina¸c˜ao 9 de outubro de 2017 46 / 47