O que significa modo de usuário e modo de kernel no Linux

Os sistemas operacionais, como o MS-DOS, são executados no modo de CPU única, mas alguns sistemas operacionais do tipo Unix usam o
modo duplo, o que efetivamente implementa o compartilhamento de tempo. Em uma máquina Linux, a CPU está no modo de kernel confiável ou no modo de usuário
restrito . Todos os processos de usuário são executados em modo de usuário, exceto o próprio kernel que está em modo de kernel .

O código do modo kernel tem acesso irrestrito a todos os conjuntos de instruções do processador e a toda a memória e espaço de E/S . Para que um
processo de modo de usuário aproveite esse privilégio, ele deve fazer uma solicitação a um driver de dispositivo ou outro código de modo kernel por meio de uma chamada de sistema
. Além disso, o código do modo de usuário permite que ocorram falhas de página, enquanto o código do modo kernel não.

Nos kernels 2.4 e anteriores, apenas os processos do modo de usuário podiam ser trocados por contexto e substituídos por outros processos.
O código do modo kernel pode monopolizar a CPU até que ocorram as duas condições a seguir:

(1) 它自愿放弃 CPU;
(2) 发生中断或异常。

O kernel 2.6 introduz a preempção do kernel, e a maioria dos códigos do modo kernel também pode ser preemptiva

Acho que você gosta

Origin blog.csdn.net/weixin_43072508/article/details/128676519
Recomendado
Clasificación