Memória virtual e tradução

Relocação, fragmentação, segmentação, páginas, tabelas e TLB.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Modelo

A MMU traduz com o mapa do processo e verifica permissões. Virtuais iguais podem dar físicos distintos; espaço virtual não é RAM.

  • Cache guarda conteúdo; TLB guarda traduções. Miss de um não prova falta do outro.
  • Base bb, limite LL: válido se 0≤v<L0\leq v<L; físico b+vb+v. Limite exclusivo.
  • Contígua: first-fit (primeiro), best-fit (menor), worst-fit (maior); atualiza buracos a cada pedido. Externa: sem região contígua. Interna: capacidade atribuída sem uso.
  • Segmento: base, limite e permissões por região de tamanho variável.

Paginação

Páginas e molduras com P=2nP=2^n bytes. Para o virtual vv, com página pp, deslocamento dd, moldura ff e endereço físico aa:

p=⌊v/P⌋,d=v mod P,a=fP+d.p=\lfloor v/P\rfloor,\quad d=v\bmod P,\quad a=fP+d.

O deslocamento passa intacto. Com P=4096P=4096, 0x1A3F5 dá página 0x1A, deslocamento 0x3F5; na moldura 7, 0x073F5 (2968529685).

Tabela usada: página 0 → moldura 3; 1 → 0; 2 → 5; 3 → 1; 4 → 7; 5 → 2; 6 → 6; 7 → 4. Só as primeiras 64/P entradas pertencem ao espaço virtual.

Página 2 · deslocamento 13Tabela[2] = moldura 5Físico = 5 × 16 + 13 = 9345 = 2 × 16 + 13. A página 2 está na moldura 5.
  • Região de SS bytes alinhada: ⌈S/P⌉\lceil S/P\rceil páginas; sobra ⌈S/P⌉P−S\lceil S/P\rceil P-S.
  • Tabela linear de 32 bits com 4 KiB e 4 B/entrada: 2202^{20} entradas, 4 MiB.
  • Multinível: 10 bits exteriores, 10 interiores, 12 de deslocamento. Só cria interiores para regiões mapeadas.

TLB e proteção

EAT=h(t+M)+(1−h)(t+2M),EAT=h(t+M)+(1-h)(t+2M),

para tabela de um nível, sem caches nem faltas. Aqui tt é o acesso ao TLB, MM o acesso à memória e hh a taxa de acerto, com 0≤h≤10\leq h\leq1. Com duas tabelas no miss: t+3Mt+3M. Não somes custos já incluídos no enunciado.

  • Miss do TLB não é falta de página. valid/present variam por modelo: lê o enunciado.
  • Alcance aproximado: entradas vezes tamanho de página. Partilha de código é só leitura; COW copia à escrita.

Tabela multinível.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.