1. 什么叫做处于内核态
"处于内核态"通常意味着 CPU 正在执行内核级别的代码,并有权访问受保护的系统资源和硬件
。
在现代计算系统中,CPU 运行模式通常有两种:用户态(User Mode)和内核态(Kernel Mode)。这两种模式的区别在于它们各自可以访问的硬件资源和指令:
-
用户态:当 CPU 处于用户态时,运行的程序只能访问一部分受限制的资源和指令。如果一个程序需要访问更多的资源或执行特权级操作(例如,直接控制硬件),它需要请求操作系统,通过一种称为“系统调用”的方式将执行上下文切换到内核态。
-
内核态:当 CPU 处于内核态时,操作系统内核或设备驱动程序等可以访问所有硬件资源及内存,执行所有指令。这个模式提供了对系统底层硬件和资源的全面控制权,使得操作系统能够有效地进行任务调度、内存管理、设备控制等关键操作。
2. 概念详解
-
用户态 (User Mode) 和 内核态 (Kernel Mode):这是 CPU 的两种运行模式。在用户态下,程序只能访问一部分受限的资源。要执行特权级别操作如硬件控制或系统调用,程序需要切换到内核态。在内核态下,操作系统内核或设备驱动等有权访问所有硬件资源及内存,并执行所有 CPU 指令。
-
用户空间 (User Space) 和 内核空间(Kernel Space):这是操作系统内存的两部分。他们一起构成了系统的虚拟地址空间。