Questão de Sistemas Operacionais — Geral — VUNESP 2025
Sistemas Operacionais›Geral
Código
vu223109
Banca
VUNESP
Órgão
UNESP
Ano
2025
Cargo
V - - Doc ( )
O tamanho de um processo é limitado ao tamanho da memória física. Para obter melhor utilização de espaço de memória, uma rotina só é carregada quando é chamada. Todas as rotinas são mantidas em disco em um formato de carga relocável. O programa principal é carregado na memória e é executado. Quando uma rotina precisa chamar outra rotina, a rotina que está chamando primeiro verifica se a outra rotina foi carregada. Se não tiver sido carregada, o carregador relocável é chamado para carregar a rotina desejada na memória e atualizar as tabelas de endereços do programa para refletir essa alteração. Em seguida, o controle é passado para a rotina recém-carregada.
(A.Silberschatz; P. Galvin; G. Gagne. Editora Campus. Sistemas Operacionais: Conceitos e Aplicações, 2001)
Analise o texto relacionado com o Gerenciamento de Memória em computadores. Essa descrição se refere à técnica denominada
ACarga Dinâmica.
BCarga Virtual.
CCarregamento Seletivo de Rotinas.
DRelocação de Rotinas.
ESwapping de Rotinas.
Revelar gabarito e comentário▾
GabaritoA — Carga Dinâmica.
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”.
Carga Dinâmica em Gerenciamento de Memória
Gabarito: letra A. A descrição do texto-base — rotinas mantidas em disco e carregadas somente quando são chamadas, com o programa principal já em memória — corresponde exatamente à técnica de Carga Dinâmica (dynamic loading), conforme a teoria clássica de Sistemas Operacionais (Silberschatz, Galvin e Gagne). O texto descreve o mecanismo em que uma rotina só é trazida para a memória no momento em que é referenciada, evitando carregar todo o programa de uma vez.
A carga dinâmica é uma técnica de gerenciamento de memória que visa melhorar a utilização do espaço disponível. Em vez de carregar o programa inteiro na memória principal antes de iniciar sua execução, apenas as rotinas que são efetivamente necessárias são carregadas, e isso ocorre sob demanda, ou seja, no momento em que uma rotina é chamada pela primeira vez. O texto-base descreve precisamente esse processo: o programa principal é carregado e executado; quando uma rotina precisa chamar outra, verifica-se se ela já está na memória; se não estiver, o carregador relocável a carrega e atualiza as tabelas de endereços. Essa abordagem é particularmente útil em programas grandes, onde muitas rotinas podem nunca ser executadas em uma determinada execução, economizando memória e reduzindo o tempo de carga inicial.
A distinção fundamental entre a carga dinâmica e outras técnicas de gerenciamento de memória está no momento e no critério de carregamento. Na carga dinâmica, o carregamento é feito sob demanda, quando a rotina é referenciada, e a decisão é tomada em tempo de execução pelo programa (com auxílio do carregador). Já na memória virtual, o carregamento também é sob demanda, mas a decisão é tomada pelo sistema operacional, que gerencia a tradução de endereços virtuais para físicos, e o programa não precisa ser relocável da mesma forma. No swapping, o processo inteiro é movido entre memória principal e disco, não rotinas individuais. A relocação, por sua vez, é um mecanismo de ajuste de endereços, não uma técnica de carregamento seletivo.
A pegadinha da banca está em confundir a carga dinâmica com a memória virtual ou com o swapping. A carga dinâmica é uma técnica mais simples, que não requer suporte de hardware para tradução de endereços, e é o programador (ou o linker) quem decide quais rotinas carregar. A memória virtual, por outro lado, é uma abstração que cria a ilusão de um espaço de endereçamento maior que a memória física, e o sistema operacional gerencia a paginação/segmentação. O texto-base não menciona páginas, tabelas de páginas ou endereços virtuais, o que afasta a memória virtual. Também não menciona a troca de processos inteiros, o que afasta o swapping. A menção ao "carregador relocável" e à "atualização das tabelas de endereços" é uma pista de que se trata de carga dinâmica, pois a relocação é necessária para ajustar os endereços das rotinas carregadas em posições diferentes das previstas em tempo de compilação.
Guarde o critério decisivo: carga dinâmica = carregamento de rotinas sob demanda, em tempo de execução, sem suporte de hardware para memória virtual. É exatamente esse critério que separa a alternativa correta das demais.
1Programa principal em memória
2Rotinas em disco (relocáveis)
3Chamada de rotina
4Carregador relocável carrega
5Atualiza tabelas de endereços
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa A está correta porque descreve com precisão a técnica de carga dinâmica. O texto-base afirma que "uma rotina só é carregada quando é chamada", que "todas as rotinas são mantidas em disco em um formato de carga relocável" e que, quando uma rotina precisa chamar outra, "o carregador relocável é chamado para carregar a rotina desejada na memória e atualizar as tabelas de endereços do programa". Isso é exatamente o mecanismo de carga dinâmica: as rotinas são carregadas sob demanda, no momento da chamada, e o carregador ajusta os endereços para refletir a nova localização na memória. O objetivo, como o próprio texto diz, é "obter melhor utilização de espaço de memória", evitando carregar rotinas que podem nunca ser usadas.
Alternativa B — ❌ Incorreta
A alternativa B está incorreta porque "carga virtual" não é um termo técnico consagrado para essa técnica. O conceito mais próximo seria memória virtual, que é uma abstração que permite que programas usem um espaço de endereçamento maior que a memória física, com o sistema operacional gerenciando a transferência de páginas/segmentos entre memória principal e disco. No texto-base, não há menção a endereços virtuais, tabelas de páginas ou paginação; o carregamento é feito por rotinas individuais, não por páginas, e a decisão é do programa, não do sistema operacional. Portanto, a descrição não se encaixa na memória virtual.
Alternativa C — ❌ Incorreta
A alternativa C está incorreta porque "carregamento seletivo de rotinas" não é a nomenclatura padrão utilizada na literatura de sistemas operacionais para essa técnica. O termo consagrado é carga dinâmica (dynamic loading). Embora a ideia de carregar rotinas seletivamente esteja implícita na carga dinâmica, a banca cobra o termo técnico exato, que é "carga dinâmica". A alternativa C descreve o conceito, mas não usa a terminologia correta, o que a torna incorreta.
Alternativa D — ❌ Incorreta
A alternativa D está incorreta porque "relocação de rotinas" é um mecanismo, não uma técnica de carregamento. A relocação é o processo de ajustar os endereços de um programa ou rotina para que ele possa ser executado em uma posição de memória diferente daquela prevista em tempo de compilação. No texto-base, a relocação é mencionada como parte do processo ("formato de carga relocável", "atualizar as tabelas de endereços"), mas é um detalhe do mecanismo, não a técnica principal. A técnica descrita é a carga dinâmica, que utiliza a relocação como ferramenta.
Alternativa E — ❌ Incorreta
A alternativa E está incorreta porque swapping é uma técnica diferente. O swapping envolve a troca de processos inteiros entre a memória principal e o disco, geralmente para liberar memória para outros processos. No texto-base, não há menção à troca de processos; o foco é no carregamento de rotinas individuais sob demanda. Além disso, no swapping, o processo é movido como um todo, não rotinas específicas, e a decisão é tomada pelo sistema operacional, não pelo programa. Portanto, a descrição não corresponde ao swapping.
Gabarito: letra A — a técnica descrita é a Carga Dinâmica.