CPU的状态--内核态、用户态

一、内核态

内核态(Kernel Mode)是操作系统的工作模式之一,也称为特权模式。在此模式下CPU可以执行特权指令,操作系统内核程序运行在核心态。

在内核态下,操作系统可以执行关键的系统管理任务,如管理内存、调度进程、控制设备等。由于内核态具有最高的特权级别,因此操作系统必须确保内核态代码的安全性和稳定性,以防止恶意软件或错误的操作破坏系统稳定性。

二、用户态

用户态(User Mode)是操作系统的工作模式之一,也称为非特权模式。在此模式下CPU只能执行非特权指令。

用户态是应用程序运行的模式,受到限制,无法直接访问硬件和系统资源,必须通过操作系统接口进行操作。

三、内核态、用户态的切换

CPU中有一个寄存器叫程序状态字寄存器(psw),其中有个二进制位,1表示“内核态”,0表示“用户态”。

在操作系统中,内核态和用户态之间的切换是通过特权级别的转换来实现的。这种切换通常发生在以下几种情况下:

  1. 系统调用(System Call):当用户程序需要访问系统资源或执行特权指令时,它会发起系统调用请求。这时处理器会从用户态切换到内核态,操作系统内核会执行相应的系统调用处理程序,并在完成后将控制权返回给用户程序。

  2. 异常(Exception)和中断(Interrupt):例如,硬件中断、软件中断、页错误等情况都可能导致处理器从用户态切换到内核态,以便操作系统内核能够及时处理这些异常情况。

  3. 任务切换(Task Switching):当操作系统需要进行进程调度或上下文切换时,会引发内核态和用户态之间的切换,以便保存和恢复进程的状态信息。

内核态-->用户态:执行一条特权指令——修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权。

用户态-->内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权。

另外,程序状态字寄存器(PSW)通常对于程序员来说是不可见的,程序员可以通过使用指令和编程接口来间接地影响这些寄存器的行为,但是直接访问和修改程序状态字寄存器的能力通常是受到限制的,而具体的管理和控制则由操作系统和硬件来完成。


要了解电脑或服务器上CPU的状态,可以使用以下几种方法:

  1. Windows系统:

    ①打开任务管理器:按下Ctrl + Shift + Esc组合键,或者右键点击任务栏并选择“任务管理器”,在“性能”选项卡下可以查看CPU利用率和其他相关信息。

    ②使用WMIC命令:在命令提示符或PowerShell中输入“wmic cpu get caption, deviceid, name, numberofcores, numberoflogicalprocessors, maxclockspeed”可以查看CPU的详细信息。 

    CPU的状态--内核态、用户态_第1张图片

  2. macOS系统:

    打开活动监视器:在“应用程序” -> “实用工具”中找到“活动监视器”,在“CPU”选项卡下可以查看CPU利用率和其他相关信息。

  3. Linux系统:

    ①使用top命令:在终端中输入“top”命令可以查看系统的实时性能数据,包括CPU利用率和其他信息。

    ②使用mpstat命令:在终端中输入“mpstat -P ALL 1”可以查看每个CPU核心的利用率和其他详细信息。

  4. 使用第三方工具:

    有很多第三方的系统监控工具可以提供更详细的CPU状态信息,比如CPU温度、频率等,比如HWMonitor、CPU-Z等。

你可能感兴趣的:(操作系统,linux,运维,服务器)