49
1/49 Sistemas Operacionais Gestão de memória - Hardware de memória Prof. Carlos Maziero DInf UFPR, Curitiba PR Agosto de 2020

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 -

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 -

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