Considerando a arquitetura de memória do sistema operacional Linux, a qual é dividida fundamentalmente entre o espaço do kernel (kernel space) e o espaço do usuário (user space), analise a seguinte situação: um programador desenvolve uma aplicação que, para otimizar o desempenho de operações de entrada e saída (I/O), necessita acessar diretamente um dispositivo de hardware, como uma placa de rede, para manipulação de pacotes em baixo nível. Esta ação, contudo, se realizada de forma inadequada, pode comprometer a estabilidade e a segurança de todo o sistema. À luz da doutrina sobre o funcionamento da memória no Linux, assinale a opção que descreve corretamente o mecanismo pelo qual uma aplicação em user space pode, de maneira controlada e segura, solicitar serviços ou interagir com recursos gerenciados pelo kernel space.
- A)A aplicação pode alocar um segmento de memória compartilhada (shared memory) e mapeá-lo diretamente no endereço físico do dispositivo, permitindo acesso irrestrito ao hardware.
- B)O processo em user space deve ser executado com privilégios de superusuário (root), o que automaticamente lhe concede permissão para escrever em qualquer área do kernel space.
- C)Através da emissão de chamadas de sistema (system calls), que são interfaces bem definidas e seguras que o kernel expõe para que os processos em user space possam requisitar operações privilegiadas.gabarito
- D)Modificando diretamente os ponteiros de função na tabela de vetores de interrupção do kernel, a aplicação pode redirecionar o fluxo de controle para suas próprias rotinas de tratamento de hardware.
- E)A aplicação deve utilizar a técnica de 'swapping', forçando o kernel a mover páginas de memória para o disco, liberando assim espaço contíguo que pode ser usado para o acesso direto ao hardware.