大家好,欢迎来到IT知识分享网。
CPU的两个工作状态,也就是处理器的两种执行状态。
在一个系统中既有操作系统的程序,也由普通用户的程序。众多的指令中,有些指令只能由系统来使用,禁止用户程序去直接访问。为了保证操作系统和各个应用程序能够顺利运行,就必须对它们进行限制,否则的话就无法保证系统的安全性和稳定性。
所以根据运行程序对资源和机器指令的使用权限,把处理器设置为不同的状态。多数系统把处理器的工作状态分为管态和目态两种。
1、系统态(又叫管态、内核态、核心态、特权态)
系统态是操作系统的管理程序运行时的状态,它具有较高的特权级别。当处理器处于管态时,它可以执行所有的指令,包括各种特权指令,也可以使用所有的资源,并且具有改变处理器状态的能力,是感觉很牛逼。需要指出的是,管态和超级用户不同,前者是指CPU的状态,后者是指一种特殊的计算机用户;前者主要是从硬件的角度去执行任何指令,而后者是从软件的角度来管理系统的软硬件资源,如用户账户、权限管理、文件访问等。超级用户执行的程序不一定运行在管态,而管态程序也不一定由系统管理员启动,普通用户也可以启动。
2、用户态(又叫目态、普通态)
用户态是用户程序运行时的状态,它具有较低的特权级别。在这种状态下不能使用特权指令,不能直接使用系统资源,也不能改变CPU的工作状态,并且只能访问这个用户程序自己的存储空间。用户态不允许程序进行处理器中要求特权态的操作,以避免操作系统崩溃。每个进程都在各自的用户空间中运行,而不允许存取其他程序的用户空间。
在内核态下CPU可执行任何指令,在用户态下CPU只能执行非特权指令。
当CPU处于内核态,可以随意进入用户态;而当CPU处于用户态时,用户从用户态切换到内核态只有在系统调用和中断两种情况下发生,一般程序一开始都是运行于用户态,当程序需要使用系统资源时,就必须通过软中断机制进入内核态。
两种CPU状态之间的转换方式:
用户态—>内核态:系统调用(通过中断、异常、陷入机制)
内核态—>用户态:设置程序状态字PSW
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/147452.html