时间:2016-12-20 08:13来源: 本站整理
在计算机系统中存在两类程序:系统程序和用户程序。处理器有时执行用户程序,有时执行操作系统的程序。系统程序和用户程序的作用是截然不同的,用户程序是在系统程序的管理和控制下运行的。在操作系统形成过程中就巳经发现,如果让这两类程序享有同样的权利,系统可以做的事情,用户程序也可以做,则对整个系统的安全极为不利。为了更好地管理和控制多道程序,必须让系统程序享有一些用户程序不能享有的特权。既然要让这两类程序享有不同的权利,那么就应在它们的运行过程中予以区分,以防止用户程序的越权行为。所以,在执行不同程序时,要将处理器设置为不同状态。
1、处理器状态的划分
处理器状态乂称为处理器的运行模式,大多数系统把处理器状态简单划分为两种。
(1)管理状态(又称特权状态、系统模式、特态或管态):CPU执行的是操作系统管理程序。
(2)用户状态(又称目标状态、用户模式、算态或目态):CPU执行的是用户程序。
在不同的处理器状态下,所运行的程序对资源(如内存)的使用权限及机器指令的使用权限均不同。当处理器处于管态时可以执行全部指令(包括特权指令),使用所有资源,并具有改变处理器状态的能力。当处理器处于目态时,就只能执行非特权指令,对资源的使用也有限制。
还有一些系统将处理器状态划分为核心状态、管理状态和用户程序状态(S标状态)3种。而x86系列处理器和目前流行的Pentium系列都支持4个处理器特权级別:RO、R1、R2和R3。0级权限最高,3级权限最低。R0相当于双状态系统的管态,R3相当于冃态,R1和R2则介于两者之间。
各个级别有保护性检查(地址校验、I/O限制等),4个级别运行不同类别的程序,一种典型的应用是把4个保护级別依次设定如下。
R0级为操作系统内核级。运行操作系统核心代码,如处理1/0、存储管理和其他关键操作。
R1级为系统调用处理程序级。如运行关键设备驱动程序和I/O处理例程。用户程序可以通过调用这里的过程执行系统调用,但是只有一些特定的和受保护的过程可以被调用。
R2级为共享库过程级。运行其他受保护共享代码,如语言系统运行环境,它可以被很多正在运行的程序共享,用户程序可以调用这些过程,但是不能修改它们。
R3级为用户程序级。它受到的保护最少,可运行各种用户程序。
当然,各个操作系统在实现过程中可以根据具体策略有选择地使用硬件提供的保护级别,现奋的基于x86处理器和运行在Pentium上的操作系统,多数UNlX、Linux以及Windows系列大都只用了R0和R3两个特权级別。
2、处理器状态的转换
在系统运行中,因为一些事件的发生可使处理器状态发生改变。
从目态向管态转换的唯一途径是中断。通常CPU运行在用户态下,执行用户程序,完成计算仟务,而下面两类情况会导致从用户状态向管理状态转换:一是程序请求操作系统服务,执行一条系统调用,此时将发生访管中断;二是程序运行时,产生了一个中断事件,中断用户程序的执行,中断处理程序进行工作。
而由管态向冃态的转换,可通过设置或修改PSW(程序状态字)来实现。
本站发布的win10家庭版系统与电脑软件仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件!
如侵犯到您的权益,请及时通知我们,我们会及时处理。Copyright @ 2024 win10家庭版 xp6000.com