Questão de Sistemas Operacionais — Processos — Quadrix 2023
- Código
- qg029077
- Banca
- Quadrix
- Órgão
- CRO-BA
- Ano
- 2023
- Nível
- Médio
- Cargo
- Técnico de Informática
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: letra E (Errado). Os endereços gerados pelos processos quando estão no comando do processador são endereços lógicos (ou virtuais), não físicos — a tradução para endereços físicos é feita pela MMU (Memory Management Unit), componente de hardware que intercepta os endereços lógicos emitidos pelo processador e os converte nos endereços físicos correspondentes na memória RAM. Essa distinção é central na gerência de memória dos sistemas operacionais modernos.
Para entender por que a afirmação está errada, é preciso compreender o papel da memória virtual. Os sistemas operacionais modernos implementam a noção de memória virtual, que cria uma abstração entre o espaço de endereçamento visto pelos processos e a memória física real. Nesse modelo, existem dois tipos de endereços:
Endereços físicos (ou reais): são os endereços dos bytes de memória física do computador, definidos pela quantidade de memória disponível na máquina.
Endereços lógicos (ou virtuais): são os endereços de memória usados pelos processos e pelo sistema operacional, definidos de acordo com o espaço de endereçamento do processador.
Quando um processo está em execução, ele "enxerga" somente a memória virtual. O processador gera endereços lógicos para acessar a memória, e esses endereços precisam ser traduzidos para os endereços físicos correspondentes na RAM, onde as informações realmente estão. Essa tradução é feita pela Unidade de Gerência de Memória (MMU), um componente de hardware que, na maioria dos processadores atuais, está integrado ao chip da CPU. A MMU intercepta os endereços lógicos emitidos pelo processador e os converte em endereços físicos, permitindo o acesso à memória. Se o acesso a um endereço lógico não for possível (por não estar associado a um endereço físico, por exemplo), a MMU gera uma interrupção de hardware para notificar o processador sobre a tentativa de acesso indevido.
Um exemplo prático: quando um programa em C é executado, o compilador gera um arquivo-objeto com uma tabela de símbolos, mas não define os endereços finais das variáveis e funções. O ligador (linker) ou o carregador (loader) define esses endereços, e durante a execução o processador emite endereços lógicos que são traduzidos pela MMU. Em sistemas com paginação, por exemplo, um endereço lógico é dividido em número de página e deslocamento; a MMU consulta a tabela de páginas e recompõe o endereço físico correspondente.
A pegadinha da banca está em inverter os conceitos: ela afirma que os endereços gerados pelos processos são físicos, quando na verdade são lógicos. O candidato que confunde os dois tipos de endereço cai na armadilha. A distinção é fundamental: o processo nunca acessa diretamente a memória física; ele sempre trabalha com endereços lógicos, e a tradução é responsabilidade do hardware (MMU) com o suporte do sistema operacional.
Guarde essa fronteira: processo gera endereço lógico → MMU traduz para endereço físico. É exatamente nessa troca que a questão se baseia.
A afirmação está errada porque inverte o conceito. Os endereços gerados pelos processos durante a execução são endereços lógicos (ou virtuais), não físicos. A memória física é acessada somente após a tradução feita pela MMU. O processo "enxerga" apenas a memória virtual, e o processador emite endereços lógicos que são convertidos em endereços físicos pela MMU antes de acessar a RAM. Portanto, a afirmativa está incorreta.
Gabarito: letra E (Errado).
Link permanente: /questoes/qg029077