Sistemas Operacionais - Gestão de memória -...
Transcript of Sistemas Operacionais - Gestão de memória -...
![Page 1: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/1.jpg)
1/49
Sistemas OperacionaisGestão de memória - Hardware de memória
Prof. Carlos Maziero
DInf UFPR, Curitiba PR
Agosto de 2020
![Page 2: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/2.jpg)
2/49
Conteúdo
1 Armazenamento
2 Memória física
3 Memória virtual
Memória virtual por partições
Memória virtual por segmentos
Memória virtual por páginas
4 Localidade de referências
![Page 3: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/3.jpg)
3/49
Memória = armazenamento
Memória: local de armazenamento de informação
Dispositivos CaracterísticasRegistradores capacidade
Caches da CPU velocidade
RAM latência
discos SSD, HD custo por MB
Pendrive consumo de energia
CD, DVD volatilidade
Fita magnética
![Page 4: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/4.jpg)
4/49
Hierarquia de memória
registradores
caches
memória RAM
memória Flash
discosmídias óticas
fita magnética
volátil
não-volátil
velocidadecapacidadeconsumo
de energiacusto/MB
KB
KB - MB
Mega - Gigabytes
Gigabytes
Terabytes
Petabytes
![Page 5: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/5.jpg)
5/49
Velocidades distintas
Meio Tempo de acesso Taxa de transferênciaCache L2 1 ns 1 GB/s (1 ns/byte)
Memória RAM 60 ns 1 GB/s (1 ns/byte)
Memória flash(NAND)
2 ms 10 MB/s (100 ns/byte)
Disco rígido SATA 5 ms (desloc. da cabeçade leitura e rotação dodisco)
100 MB/s (10 ns/byte)
DVD-ROM de 100 ms a vários minu-tos (gaveta aberta ou lei-tor sem disco)
10 MB/s (100 ns/byte)
Importante: Velocidade , Tempo de acesso
![Page 6: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/6.jpg)
6/49
A memória física
Espaço de memória RAM do computador
Grande sequência de bytes com endereços individuais
Conteúdo:
Sistema operacional
Aplicações em execução
Bu�ers de entrada/saída
Áreas de transferência (DMA)
Dividida em áreas com diferentes finalidades
![Page 7: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/7.jpg)
7/49
Organização da memória em um PC
interrupt vectors
BIOS data
Video RAM
VGA ROM
BIOS ROM
0
1MBLow memory
ACPI data
I/O mapping
3GB
16GB
4GB
free RAM
free RAM
free RAM(DOS area)
640KB
1MB
![Page 8: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/8.jpg)
8/49
Espaço de endereçamento
Faixa de endereços que o processador consegue gerar
Depende da arquitetura e tamanho de barramentos
80386: CPU 32 bits, bus 32 bits, 232 endereços
Core i7: CPU 64 bits, bus 48 bits, 248 endereços
Não depende da quantidade de RAM disponível!
Endereço válido: existe um byte de RAM naquela posição
Endereço inválido: não existe RAM naquela posição
![Page 9: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/9.jpg)
9/49
Memória virtual
Separação entre memória RAM e espaço de endereçamento:
Endereços físicos: endereços acessados na RAM.
Endereços lógicos: endereços usados pela CPU.
A memória RAM é acessada por endereços físicos.
Ao executar, a CPU e os processos só veem endereços lógicos.
Simplifica o uso da memória pelo SO e processos.
![Page 10: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/10.jpg)
10/49
Conversão de endereços
A conversão Lógico→ Físico é feita pela MMU:
MMU: Memory Management Unit
Hardware entre a CPU e a memória RAM
Pode ser gerenciada pelo núcleo do SO
Converte endereços lógicos em físicos a cada instrução
Gera IRq se a conversão L→ F não for possível
![Page 11: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/11.jpg)
11/49
Unidade de gerência de memória
processor
memory
MMU
control
data
address
bus
logical adress
physical address
interrupt
physical address
![Page 12: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/12.jpg)
12/49
Memória virtual
Memória virtual:
Forma como a CPU e o so�ware vêem a memória
Corresponde aos endereços lógicos
Mapeamento L→ F é feito pela MMU
Várias formas de implementar:
Por partições
Por segmentos
Por páginas
Por segmentos + páginas
![Page 13: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/13.jpg)
13/49
Memória virtual por partições
Uma partição de tamanho T :
Área de RAM contígua (sem buracos) com T bytes
Endereços lógicos no intervalo [0 . . . T − 1]
As partições podem ser tamanhos iguais ou distintos
As partições podem ser tamanhos fixos ou variáveis
Cada partição é ocupada por um processo
![Page 14: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/14.jpg)
14/49
Memória virtual por partições
14.257
RAM
logical address
physical address
address translation mechanism
process pb
14.999
0
55.257
55.999
process pc
process pa
0
kernelarea
41.000
9.999
0
10.999
0
![Page 15: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/15.jpg)
15/49
Memória virtual por partições
A implementação da MMU usa dois registradores:
Base (B): endereço físico inicial da partição ativa
Limite (L): tamanho em bytes dessa partição
Regra de conversão:
se EL < L então EF = B + EL senão erro
Os valores de B e L são ajustados a cada troca de contexto
Uma tabela contém B e L de todas as partições
![Page 16: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/16.jpg)
16/49
Memória virtual por partições
A<L
IRq: partition violation
14.25714257
2
15000 41000PTBR
10000 6000
11000 70000
15000 41000
... ...
partition table RAM
... ...
Active processPartition
Limit
Address
Base
55.257
0
kernelarea
0
1
2
3
yes
nophysicaladdress
logicaladdress
MMU
55.257
0
14.999
41.000L
A A
B
![Page 17: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/17.jpg)
17/49
Memória virtual por partições
Vantagens:
Simplicidade
Rapidez
Desvantagens:
Processos podem ter tamanhos distintos das partiçõesProcessos pequenos desperdiçam RAMProcessos muito grandes não podem executar
Número de processos ≤ número de partições
Dificuldade para compartilhar memória
![Page 18: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/18.jpg)
18/49
Memória virtual por segmentos
Cada processo tem um conjunto de áreas internas:
Armazenam as diferentes partes do processo
Código, dados, pilha, heap, ...
Bibliotecas compartilhadas
Ideia: estender o modelo de partições:
O espaço de endereçamento é dividido em segmentosCada área do processo fica em um segmentoCada processo tem uma tabela de segmentos
![Page 19: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/19.jpg)
19/49
Memória virtual por segmentos
[3 : 6.914]
RAM
0
kernelarea
logicaladdress
0
1
1
0
3
2
2
38.914
physicaladdress
address translation mechanismprocess pa
process pb
![Page 20: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/20.jpg)
20/49
Memória virtual por segmentos
Os endereços lógicos são bidimensionais [S : O]
S: número do segmento daquele processo
O: o�set (posição) dentro do segmento S
Uma tabela de segmentos para cada processo:
Base e Limite de cada segmento
Permissões do segmento (read, write, ...)
Outros flags
A tradução de endereços é similar ao modelo por partições
![Page 21: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/21.jpg)
21/49
Memória virtual por segmentos
O<L
IRq: segmentation violation
[3 : 6.914]6914
3
7500 32000STBR
5500 1200
4200 8000
10500 15000
7500 32000
segment table RAM
... ...
Active process
Segment
Limit
Offset
Base
38.914
0
kernelarea
0
1
2
3
yes
no
0
1 2
3
4
physicaladdress
logicaladdress
MMU
38.914
L B
O O
![Page 22: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/22.jpg)
22/49
No Intel 80.x86 (32 bits)
Duas tabelas de segmentos por processo:
Local Descriptor Table (LDT): segmentos locais do processo
Global Descriptor Table (GDT): segmentos compartilhadosentre vários processos (DLLs, bu�ers, etc)
Cada tabela tem até 8.192 entradas
Registradores para os segmentos mais usados:
CS: Code Segment, código em execução
SS: Stack Segment, pilha do processo
DS, ES, FS, GS: Data Segments, dados usados pelo processo
![Page 23: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/23.jpg)
23/49
Memória virtual por páginas
Ideia: dividir RAM e espaço de endereçamento em blocos:
Blocos de mesmo tamanho (em geral 4.096 bytes)
Blocos de endereços lógicos: páginasBlocos de endereços físicos: quadros
A tradução L→ F consiste em mapear páginas→ quadros
O endereços lógicos são lineares (unidimensionais)
![Page 24: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/24.jpg)
24/49
Memória virtual por páginasRAM
0
kernelarea
pageframes
address translation mechanism
process pa
process pb
pages0
0
![Page 25: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/25.jpg)
25/49
Tradução páginas→ quadros
Mapear as páginas dos processos em quadros de RAM
Usa uma Tabela de Páginas (page table) por processo:
Cada entrada da tabela corresponde a uma página
A entrada contém o número do quadro e outros flags
Cada processo possui sua tabela de páginas
Page Table Base Register (PTBR) indica a tabela ativa
O número de página é extraído do endereço lógico
![Page 26: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/26.jpg)
26/49
Estrutura do endereço lógico
CPU de 32 bits com páginas de 4.096 bytes (212 bytes)
Conversão do endereço lógico 01803E9Ah:
01803E9Ah →
page: 20 bits︷ ︸︸ ︷0000 0001 1000 0000 0011
o�set: 12 bits︷ ︸︸ ︷1110 1001 10102
→
page=01803h︷ ︸︸ ︷0000 0001 1000 0000 0011
o�set=E9Ah︷ ︸︸ ︷1110 1001 10102
→ page = 01803h o�set = E9Ah
![Page 27: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/27.jpg)
27/49
Estrutura do endereço lógico
CPU de 32 bits com páginas de 4 KBytes:
Endereços lógicos de 32 bits e páginas com 4 Kbytes
4 Kbytes são 212 bytes: o deslocamento usa 12 bits
Page Number: 20 bits mais significativos
O�set: 12 bits menos significativos
Os 20 bits mais significativos definem 220 páginas
Espaço total: até 1.048.576 páginas com 4.096 bytes cada
![Page 28: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/28.jpg)
28/49
Tradução de endereços lógicos em físicos
Passos da MMU para a tradução L→ F :
1 Decompor o endereço lógico:
número da página (bits mais significativos)o�set (bits menos significativos)
2 Consultar a tabela de páginas ativa:
obter o número do quadro correspondente à páginase a página não está mapeada, gerar uma falta de página
3 Construir o endereço físico:
número do quadro (bits mais significativos)o�set (bits menos significativos)
![Page 29: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/29.jpg)
29/49
Tradução de endereços
0180 3E9A
1803
E9A
PTBR
page table
Active process
page
offset0002 FE9A
physicaladdress
logicaladdress
MMU
0
RAM
0
kernelarea
2F
E9A
frame
13 - - - - 76- 2F 1A
0 18031
1
2
3
![Page 30: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/30.jpg)
30/49
Flags de controle das páginas
Para cada entrada da tabela de páginas:
Valid: página é mapeada no espaço do processo
Writable: página pode ser acessada em escrita
User: indica código de usuário ou de núcleo
Present: a página está presente na memória RAM
Accessed: a página foi acessada recentemente
Dirty: página foi modificada recentemente
Outros flags, para uso do núcleo do SO
Conteúdo depende da arquitetura do processador
![Page 31: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/31.jpg)
31/49
Tamanho da tabela de páginasEm uma CPU de 32 bits com páginas de 4 Kbytes:
Uma entrada na tabela: ∼ 32 bits (no¯ do frame + flags)
Tabela com 220 entradas: 4 Mbytes de RAM
Desperdício de RAM em processos pequenos
20 páginasmapeadas
100 páginasmapeadas
1.048.576 ponteiros de 32 bits = 4 MBytes
0 1 2 3
1.048.456 páginas não-mapeadas
![Page 32: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/32.jpg)
32/49
Tabelas de páginas multiníveis
São estruturadas como árvores:
tabela de páginas de primeiro nível (diretório de páginas)
tabelas de páginas de segundo nível
tabelas de páginas de terceiro nível
...
Número de níveis depende da arquitetura:
2 níveis: Intel 80.x86
3 níveis: Sun Sparc, DEC Alpha
4 níveis: Intel core, Intel i3/i5/i7
![Page 33: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/33.jpg)
33/49
Tabela de páginas com 2 níveis
0 1 2 3 1023
3 x 1.024 ponteiros de 32 bits = 12 KBytes
0 1 2 1023 0 1 2 3 10239998 1004
100 páginasmapeadas
20 páginasmapeadas
Cada subtabela ocupa uma página (4.096 bytes)
![Page 34: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/34.jpg)
34/49
Estrutura do endereço lógico
CPU de 32 bits, páginas de 4 KBytes, dois níveis (10 bits cada):
01803E9Ah →
p2:10 bits︷ ︸︸ ︷0000 0001 10
p1:10 bits︷ ︸︸ ︷00 0000 0011
o�set:12bits︷ ︸︸ ︷1110 1001 1010
→
p2=0006h︷ ︸︸ ︷0000 0001 10
p1=0003h︷ ︸︸ ︷00 0000 0011
o�set=E9Ah︷ ︸︸ ︷1110 1001 1010
→ p2 = 0006h p1 = 0003h o�set = E9Ah
![Page 35: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/35.jpg)
35/49
Tradução de endereços pela MMU
1 Decompor o endereço lógico L:
índice externo com 10 bits (p2)índice interno com 10 bits (p1)o�set com 12 bits (O)
2 Usar p2 como índice na tabela externa:
obter o endereço da tabela internase não estiver mapeada, page fault
3 Usar p1 como índice na tabela interna:obter o número do quadro Qse não estiver mapeada, page fault
4 Construir o endereço físico com Q e O
![Page 36: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/36.jpg)
36/49
Tabelas multi-níveis
0180 3E9A3
E9A
PTBR
page table
Active process
p1
offset
0002 FE9A
physicaladdress
logicaladdress
MMU
0
RAM
0
kernelarea
2F
E9A
frame
- - - -
0 6
6 p2
2B
AA
13
2F
-
-
3
0
1
1
2
3
4
![Page 37: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/37.jpg)
37/49
Economia da tabela multi-níveis
Para um processo pequeno (2 páginas):
Com um nível: 4 × 220 = 4 MBytes
Com dois níveis: 4 × (210 + 2 × 210) = 12 KBytes
Para um processo grande (220 páginas):
Com um nível: 4 × 220 = 4 MBytes
Com dois níveis: 4 × (210 + 210 × 210) ≈ 4, 004 MBytes
CUSTO: cada tradução precisa mais acessos à RAM (tabelas)
![Page 38: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/38.jpg)
38/49
Cache da tabela de páginas
Traduções Página→�adro são repetitivas
TLB - Translation Lookaside Bu�er:
cache interno da MMU para traduções recentes
armazena traduções P → Q recentes
funciona como uma tabela de hash em hardware
pequeno: entre 16 e 256 entradas
É um cache rápido:
um acerto (cache hit) custa 1 ciclo de clock
um erro custa de 10 a 30 ciclos de clock
![Page 39: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/39.jpg)
39/49
Funcionamento do TLB
Para traduzir um endereço lógico L, a MMU:
1 decompõe L em P (página) e O (o�set)
2 verifica se P → Q está no cache TLB
3 se estiver (TLB hit), pega Q
4 caso contrário (TLB miss), busca Q na tabela de páginas(passos 4-6)
7 usa Q e O para obter o endereço físico F
8 a tradução P → Q é adicionada ao TLB
![Page 40: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/40.jpg)
40/49
Cache da tabela de páginas
0180 3E9A3
E9A
PTBR
page table
Active process
p1
offset
0002 FE9A
physicaladdress
logicaladdress
MMU
0
RAM
0
kernelarea
2F
E9A
frame
- - - -
0 6
6 p2
2B
AA
13
2F
-
-
3
0
1
1
2
4
5
TLB
6
8
7
3
![Page 41: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/41.jpg)
41/49
Desempenho do TLB
Considerando o seguinte sistema:
Frequência de CPU de 2 GHz (relógio de 0,5 ns)
Tempo de acesso à RAM de 50 ns
Tabelas de páginas com 3 níveis
TLB com custo de acerto de 0,5 ns e de erro de 10 ns
Calcular tempo médio de acesso à RAM:
sem TLB
com TLB e taxa de acerto de 95%
![Page 42: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/42.jpg)
42/49
Desempenho do acesso à RAM
Sem TLB: tmed =
tables︷ ︸︸ ︷3 × 50 ns +
address︷︸︸︷50 ns = 200 ns
Com TLB (hit): tmed = thit + taddress
Com TLB (miss): tmed = tmiss + ttables + taddress
tmed (95%) = 95% × (0, 5 ns + 50 ns)
+ 5% × (10 ns + 3 × 50 ns + 50 ns)
= 58, 475 ns
tmed (90%) = 66, 45 ns
![Page 43: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/43.jpg)
43/49
Cache da tabela de páginas
Fatores que influenciam a taxa de acertos do TLB:
Tamanho do TLB: quanto mais entradas, mais acertos
Política de substituição das entradas do TLB
Trocas de contexto exigem a limpeza do TLB
Padrão de acessos à memória (localidade de referências)
![Page 44: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/44.jpg)
44/49
Localidade de referências
Concentração dos acessos à memória no espaço e/ou tempo.
Impacta na eficiência dos mecanismos de gerência de memória.
Três formas básicas:
Temporal: um recurso usado há pouco tempo seráprovavelmente usado novamente em breve;
Espacial: um recurso será mais provavelmente acessadose outro recurso próximo a ele já foi acessado;
Sequencial: após o acesso a um recurso na posição p, hámaior probabilidade de acessar um recurso em p + 1
![Page 45: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/45.jpg)
45/49
Localidade de referências
Exemplo: visualizador de imagens gThumb (ambiente Gnome):
![Page 46: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/46.jpg)
46/49
Localidade de referênciasExemplo: Preenchimento de uma matriz por linhas:
1 unsigned char buffer[4096][4096] ;2
3 int main ()4 {5 for (int i=0; i<4096; i++) // percorre as linhas do buffer6 for (int j=0; j<4096; j++) // percorre as colunas do buffer7 buffer[i][j]= (i+j) % 256 ;8 }
Ou por colunas:
1 ...2 for (j=0; j<4096; j++) // percorre as colunas do buffer3 for (i=0; i<4096; i++) // percorre as linhas do buffer4 buffer[i][j]= (i+j) % 256 ;5 ...
![Page 47: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/47.jpg)
47/49
Padrão de acessos à memória
i
j
página
0
1
2
3
4095
4
409543210
![Page 48: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/48.jpg)
48/49
Diferenças de desempenhoPor linhas: ∼ 5 páginas distintas em 100.000 acessos
Por colunas: ∼ 3.000 páginas distintas em 100.000 acessos
�al o impacto sobre o desempenho do TLB?
![Page 49: Sistemas Operacionais - Gestão de memória - Conceitoswiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-14.pdf · 2019. 5. 6. · Sistemas Operacionais Gestão de memória -](https://reader036.fdocument.pub/reader036/viewer/2022062607/602440ad2ae8eb16a7697f55/html5/thumbnails/49.jpg)
49/49
Localidade de referências
Fatores que influenciam a localidade de referências:
As estruturas de dados usadas pelo programa
vetores e matrizes têm mais localidade de referênciaslistas encadeadas e árvores podem ter baixa localidade
Os algoritmos usados pelo programa
acessos por linhas ou por colunas
A qualidade do compiladorcolocar variáveis usadas juntas nas mesmas páginasalinhar as estruturas de dados nas páginas