CPU的两个工作状态,也就是处理器的两种执行状态。

<>
在一个系统中既有操作系统的程序,也由普通用户的程序。众多的指令中,有些指令只能由系统来使用,禁止用户程序去直接访问。为了保证操作系统和各个应用程序能够顺利运行,就必须对它们进行限制,否则的话就无法保证系统的安全性和稳定性。

<>所以根据运行程序对资源和机器指令的使用权限,把处理器设置为不同的状态。多数系统把处理器的工作状态分为管态和目态两种。

<>1、系统态(又叫管态、内核态、核心态、特权态)

系统态是操作系统的管理程序运行时的状态,它具有较高的特权级别。当处理器处于管态时,它可以执行所有的指令,包括各种特权指令,也可以使用所有的资源,并且具有改变处理器状态的能力,是感觉很牛逼。需要指出的是,管态和超级用户不同,前者是指CPU的状态,后者是指一种特殊的计算机用户;前者主要是从硬件的角度去执行任何指令,而后者是从软件的角度来管理系统的软硬件资源,如用户账户、权限管理、文件访问等。超级用户执行的程序不一定运行在管态,而管态程序也不一定由系统管理员启动,普通用户也可以启动。

<>2、用户态(又叫目态、普通态)

用户态是用户程序运行时的状态,它具有较低的特权级别。在这种状态下不能使用特权指令,不能直接使用系统资源,也不能改变CPU的工作状态,并且只能访问这个用户程序自己的存储空间。用户态不允许程序进行处理器中要求特权态的操作,以避免操作系统崩溃。每个进程都在各自的用户空间中运行,而不允许存取其他程序的用户空间。
<>在内核态下CPU可执行任何指令,在用户态下CPU只能执行非特权指令。 <>
当CPU处于内核态,可以随意进入用户态;而当CPU处于用户态时,用户从用户态切换到内核态只有在系统调用和中断
两种情况下发生,一般程序一开始都是运行于用户态,当程序需要使用系统资源时,就必须通过软中断机制进入内核态。
<>两种CPU状态之间的转换方式:

<>用户态—>内核态:系统调用(通过中断、异常、陷入机制)

<>内核态—>用户态:设置程序状态字PSW

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信