Pular para o conteúdo principal

Questão de Sistemas Operacionais — Gerência de Memória (Paginação, Virtual, etc.) — VUNESP 2023

Sistemas OperacionaisGerência de Memória (Paginação, Virtual, etc.)
Código
vu196726
Banca
VUNESP
Órgão
TJM SP
Ano
2023
Cargo
Ana SJ ( )
Nos sistemas operacionais típicos, um método de gerenciamento de memória prevê que cada programa tenha o seu próprio espaço de endereçamento, dividido em blocos chamados de páginas. Nesse método, quando o programa referencia uma parte de seu espaço de endereçamento que não está na memória física, o sistema operacional é alertado para ir buscar a parte que falta e reexecuta a instrução que falhou.   Esse método é conhecido como
  1. AMemória Cache.
  2. BMemória Compartilhada.
  3. CMemória Transacional.
  4. DMemória Virtual.
  5. ESwapping.
Revelar gabarito e comentário

GabaritoD — Memória Virtual.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Memória Virtual e Paginação

Gabarito: letra D. O método descrito — cada programa com seu próprio espaço de endereçamento dividido em páginas, com o sistema operacional buscando a página ausente e reexecutando a instrução que falhou — é exatamente a memória virtual implementada por paginação por demanda. A alternativa D é a única que nomeia o conceito que engloba todas essas características.

A memória virtual é uma técnica de gerenciamento de memória que cria a ilusão de um espaço de endereçamento muito maior do que a memória física disponível. Ela permite que cada processo tenha seu próprio espaço de endereçamento virtual, que é dividido em unidades de tamanho fixo chamadas páginas. A memória física é dividida em quadros de página (frames) do mesmo tamanho. Quando um programa referencia um endereço virtual, a MMU (Memory Management Unit) traduz esse endereço para um endereço físico. Se a página referenciada não estiver na memória física, ocorre um page fault (falha de página): o sistema operacional é alertado, busca a página no disco (memória secundária) e a carrega em um quadro livre. A instrução que causou a falha é então reexecutada. Esse mecanismo é conhecido como paginação por demanda (demand paging), uma das principais implementações da memória virtual.

A memória virtual tem três funções básicas, conforme descrito no material de apoio:

  1. Realocação: assegurar que cada processo tenha seu próprio espaço de endereçamento, começando em zero.

  2. Proteção: impedir que um processo acesse memória que não lhe pertence.

  3. Paginação/troca: permitir que uma aplicação utilize mais memória do que a fisicamente existente.

O texto do enunciado descreve precisamente a função de paginação: o espaço de endereçamento é dividido em páginas, e quando uma página não está na memória física, o SO a busca e reexecuta a instrução. Isso é a essência da memória virtual.

Para diferenciar dos distratores, é importante entender o que cada alternativa representa:

  • Memória Cache: é uma memória de alta velocidade que armazena cópias de dados frequentemente acessados da memória principal, para reduzir a latência. Não envolve espaço de endereçamento virtual nem paginação.

  • Memória Compartilhada: é uma técnica de comunicação entre processos (IPC) onde múltiplos processos podem acessar a mesma região de memória. Não está relacionada à paginação.

  • Memória Transacional: é um conceito de programação concorrente (memória transacional de software) que permite que blocos de código sejam executados atomicamente. Não é um método de gerenciamento de memória.

  • Swapping: é uma técnica onde um processo inteiro é copiado da memória para o disco e vice-versa, para liberar memória. Diferente da paginação, que trabalha com páginas individuais, o swapping move o processo completo.

A pegadinha da questão está em confundir swapping com paginação. O swapping move o processo inteiro, enquanto a paginação move apenas páginas individuais. O enunciado fala explicitamente em "blocos chamados de páginas" e "buscar a parte que falta", o que caracteriza a paginação, não o swapping.

Guarde a distinção central: memória virtual é o conceito amplo; paginação é a técnica de implementação; swapping é uma técnica diferente de gerenciamento de memória que move processos inteiros. É nessa fronteira que as alternativas se dividem.

1Espaço de endereçamento próprio por processo
2Dividido em páginas
3Page fault
SO busca a página no disco
Reexecuta a instrução
4Funções
Realocação
Proteção
Paginação/troca
Memória virtual
LEVELsoulevel.com.br
Memória virtual: Espaço de endereçamento próprio por processo; Dividido em páginas; Page fault (SO busca a página no disco, Reexecuta a instrução); Funções (Realocação, Proteção, Paginação/troca)

Alternativa A — ❌ Incorreta

A memória cache é uma memória de alta velocidade que fica entre a CPU e a memória principal, armazenando dados frequentemente usados para acelerar o acesso. Ela não divide o espaço de endereçamento em páginas nem realiza busca de páginas ausentes. O conceito de cache é de hierarquia de memória, não de gerenciamento de memória virtual.

Alternativa B — ❌ Incorreta

A memória compartilhada é um mecanismo de comunicação entre processos (IPC) que permite que dois ou mais processos acessem a mesma região de memória. Não tem relação com paginação ou com a busca de páginas ausentes. É um conceito de comunicação, não de gerenciamento de memória.

Alternativa C — ❌ Incorreta

A memória transacional é um paradigma de programação concorrente que permite que blocos de código sejam executados de forma atômica, sem a necessidade de locks explícitos. Não é um método de gerenciamento de memória do sistema operacional. O enunciado descreve um mecanismo de hardware/SO, não um paradigma de programação.

Alternativa D — ✅ Correta ⟵ GABARITO

A memória virtual é exatamente o que o enunciado descreve: cada programa tem seu próprio espaço de endereçamento, dividido em páginas; quando uma página não está na memória física, o SO a busca no disco e reexecuta a instrução. Isso é a implementação clássica de memória virtual com paginação por demanda. O texto do material de apoio confirma: "A memória virtual funciona bem em um sistema de multiprogramação, com pedaços e partes de muitos programas na memória simultaneamente" e "a maioria dos sistemas de memória virtual usa uma técnica chamada de paginação".

Alternativa E — ❌ Incorreta

O swapping é uma técnica onde o processo inteiro é copiado da memória para o disco (e vice-versa) para liberar memória. Diferente da paginação, que trabalha com páginas individuais, o swapping move o processo completo. O enunciado fala em "blocos chamados de páginas" e "buscar a parte que falta", o que caracteriza a paginação, não o swapping. O swapping é um mecanismo mais grosseiro e de maior custo de desempenho.

NÃO CAIA NESSA!

A banca explora a confusão entre swapping e paginação. O swapping move o processo inteiro para o disco; a paginação move apenas páginas individuais. O enunciado fala em "blocos chamados de páginas" e "buscar a parte que falta" — isso é paginação, não swapping. Fique atento: se o texto mencionar "páginas" e "buscar a parte que falta", a resposta é memória virtual; se mencionar "processo inteiro copiado para o disco", é swapping.

PEGA ESSA DICA!

Para diferenciar rapidamente, lembre-se: memória virtual é o conceito amplo; paginação é a técnica de implementação; swapping é uma técnica diferente que move processos inteiros. Na prova, sublinhe as palavras-chave: "páginas" → memória virtual; "processo inteiro" → swapping.

Gabarito: letra D

Link permanente: /questoes/vu196726