Uma memória virtual possui páginas de 1024 endereços, existem oito páginas virtuais e 4096 bytes de memória real. A tabela de páginas de um processo está descrita a seguir. O asterisco indica que a página não está na memória principal. Analise as sentenças a seguir e depois assinale a alternativa correta. I) As páginas virtuais 2, 3, 5 e 7 não estão alocadas na memória principal. II) O acesso a qualquer endereço virtual correspondente à página virtual 2, irá causar erro de page fault. III) O acesso a qualquer endereço virtual correspondente à página virtual 6, irá causar erro de page fault.
Questão
Uma memória virtual possui páginas de 1024 endereços, existem oito páginas virtuais e 4096 bytes de memória real. A tabela de páginas de um processo está descrita a seguir. O asterisco indica que a página não está na memória principal. Analise as sentenças a seguir e depois assinale a alternativa correta.
I) As páginas virtuais 2, 3, 5 e 7 não estão alocadas na memória principal.
II) O acesso a qualquer endereço virtual correspondente à página virtual 2, irá causar erro de page fault.
III) O acesso a qualquer endereço virtual correspondente à página virtual 6, irá causar erro de page fault.
| Página Virtual | Página Real |
|---|---|
| 0 | 3 |
| 1 | 1 |
| 2 | * |
| 3 | * |
| 4 | 2 |
| 5 | * |
| 6 | 0 |
| 7 | * |
Alternativas
A) Somente o item I está correto.
B) Somente o item II está correto.
C) Somente o item III está correto.
D) Somente os itens I e II estão corretos.
Explicação
Vamos organizar os dados.
-
Tamanho da página: endereços.
-
Nº de páginas virtuais: (0 a 7)
Espaço virtual do processo: endereços.
-
Memória real: bytes (ou endereços, no enunciado misturam termos; o que importa é a quantidade de molduras/frames).
-
Nº de molduras (páginas reais) na memória: páginas reais (frames 0 a 3).
Tabela de páginas (dada):
- PV 0 → PR 3 (está na memória)
- PV 1 → PR 1 (está na memória)
- PV 2 → * (não está na memória)
- PV 3 → * (não está na memória)
- PV 4 → PR 2 (está na memória)
- PV 5 → * (não está na memória)
- PV 6 → PR 0 (está na memória)
- PV 7 → * (não está na memória)
Agora, avaliando as sentenças:
I) As páginas virtuais 2, 3, 5 e 7 não estão alocadas na memória principal.
- Pela tabela, exatamente essas páginas estão marcadas com “*”. Logo, verdadeiro.
II) O acesso a qualquer endereço virtual correspondente à página virtual 2 irá causar page fault.
- Página virtual 2 está com “*”, isto é, não está residente na memória principal. Qualquer acesso a um endereço cujo número de página seja 2 exigirá trazer a página para memória, gerando page fault. Logo, verdadeiro.
III) O acesso a qualquer endereço virtual correspondente à página virtual 6 irá causar page fault.
- Página virtual 6 está mapeada para página real 0 (PV 6 → PR 0), portanto está na memória principal. Assim, o acesso não causa page fault. Logo, falso.
Conclusão: estão corretas apenas I e II.
Alternativa correta: (D).