Em relação ao kernel do Linux, é correto afirmar:

Próximas questões
Com base no mesmo assunto
Ano: 2010 Banca: FCC Órgão: SERGAS Prova: FCC - 2010 - SERGAS - Analista de Sistemas |
Q40237 Sistemas Operacionais
Em relação ao kernel do Linux, é correto afirmar:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: Alternativa E

A alternativa correta é a E. Vamos entender o porquê e discorrer sobre o tema abordado.

Alternativa E: Uma das situações em que o kernel cria um espaço de endereços virtuais é quando um novo processo é criado através do uso da chamada de sistema fork().

O kernel do Linux é responsável por várias tarefas essenciais para o funcionamento do sistema. Uma delas é o gerenciamento de memória. Quando um novo processo é criado, o kernel precisa alocar um novo espaço de endereços virtuais para esse processo. Isso é feito através da chamada de sistema fork(), que é usada para criar um novo processo filho que é uma cópia do processo pai, incluindo seu espaço de endereços.

Agora, vamos analisar porque as outras alternativas estão incorretas:

Alternativa A: Ela menciona o arquivo /etc/iservices, que não é um arquivo padrão do Linux para checar o que deve ser inicializado em nível de software e processos. Os arquivos de inicialização costumam estar em diretórios como /etc/init.d/ ou /etc/systemd/, dependendo do sistema de inicialização.

Alternativa B: O controle do uso de memória pelos programas não é feito por meio do arquivo /etc/modules. Esse arquivo é geralmente usado para listar módulos do kernel que devem ser carregados na inicialização do sistema.

Alternativa C: Embora seja verdade que o comando modprobe é usado para carregar módulos do kernel, a questão não se refere diretamente à funcionalidade do kernel em criar espaços de endereços virtuais, que é o foco correto da alternativa E.

Alternativa D: O comando insmod é usado para inserir módulos no kernel, mas ele não os carrega automaticamente. Para carregamento automático de módulos, o comando modprobe é utilizado porque ele lida com dependências de módulos.

Com essas explicações, espero ter esclarecido o porquê da alternativa E ser a correta e ajudado a entender melhor o papel do kernel no gerenciamento de processos e memória no Linux.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

a) On UNIX, the configuration file /etc/services maps port numbers to named services.
"O kernel carrega as funções responsáveis por verificar o que deve ser inicializado em nível de software e processos, como, por exemplo, o conteúdo do arquivo /etc/init"

b) Loading a kernel module is an essential task. File /etc/modules.conf (or /etc/modules - see a note below for more info) is configuration file for loading kernel modules.

http://www.cyberciti.biz/faq/linux-how-to-load-a-kernel-module-automatically-at-boot-time/


c) Provavelmente deve ser compilado antes.

       modprobe - program to add and remove modules from the Linux Kernel
fonte: http://www.linuxcommand.org/man_pages/modprobe8.html

d) Insmod

insmod installs a loadable module in the running kernel.

insmod tries to link a module into the running kernel by resolving all symbols from the kernel's exported symbol table.

fonte: http://linux.about.com/od/commands/l/blcmdl8_insmod.htm

e) (correto
In Unix systems equipped with virtual memory support (practically all modern variants), the fork operation creates a separate address space for the child.

fonte: http://en.wikipedia.org/wiki/Fork_(system_call)

a) Ele carrega as funções responsáveis por checar o que deve ser inicializado em nível de software e processos, por meio do arquivo /etc/iservices.

(ERRADO o certo seria etc/init.d)

b) Ele executa as funções de controlar o uso de memória pelo programa por meio do arquivo /etc/modules

(ERRADO. O correto seria /proc)

c) Caso algum hardware não esteja nele compilado, ele deverá ser carregado por meio do comando modprobe.

(ERRADO. modprobe instala/desinstala módulos, o correto seria mount)

d) Insmod é o programa usado para carregar automaticamente, no kernel, os módulos quando são requeridos pelo sistema.

(Insmod é similar ao modprobe. Contudo, não carrega automaticamente como o modprobe)

e) Uma das situações em que o kernel cria um espaço de endereços virtuais é quando um novo processo é criado através do uso da chamada de sistema fork ().  (CORRETO)

Letra E.

 

Apenas complementando...

 

Uma limitação do comando insmod é que ele não entende as dependências de módulos. Ao pedir que um determinado módulo seja carregado, este comando não carrega automaticamente os módulos necessários a execução do módulo especificado. O comando modprobe, ao contrário do comando insmod, carrega os módulos e verifica as dependências.

 

Para acrescentar um módulo do kernel automaticamente a cada inicialização do sistema, inclua o comando correspondente no arquivo /etc/modules.

.

Fonte da resposta - Letra E:

"Existem exatamente duas situações em que o núcleo do sistema cria um novo espaço de endereçamento virtual:
1ª - Quando um processo executa um novo programa, por meio de uma chamada à rotina do sistema exec;
2ª - Ou na criação de um novo processo, por meio da rotina de sistema fork.

.

O primeiro caso é fácil: quando um novo programa vai ser executado, o processo recebe um novo espaço de endereçamento virtual, completamente vazio. É responsabilidade das rotinas do sistema carregar o programa, preenchendo o espaço de endereçamento com regiões da memória virtual.

.

No segundo caso, a criação de um novo processo pela rotina fork envolve a criação de uma cópia completa do espaço de endereçamento virtual do processo existente."

.

Fonte: www.eee.ufg.br/~mcastro/disciplinas/so/trabalhos/GrupoF/SO_MM.DOC - Procure por "Fork".

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo