目录
1.3.1用户态与核心态
1.3.2中断与异常
1.3.3系统调用
【例题】
1.3.1用户态与核心态
在计算机系统中,CPU通常运行两种不同性质的程序: 一种是操作系统内核程序;另一种是用户自编程序,简称用户程序或应用程序。为了避免操作系统及其关键数据(如PCB等)受到用户程序有意或无意的破坏,通常将处理器的执行状态分为:核心态和用户态。
(1)核心态
又称管态、系统态。是操作系统管理程序执行时机器所处的状态。,它具有较高的特权,能执行包括特权指令的一切指令,能方问所有寄存器和存储区。
[特权指令是指由操作系统内核使用的指令,用户程序不能执行,如I/0指令、设置中断屏蔽指令、清内存指令、存储保护指令和设置时钟指令。]
(2)用户态
用户态又称目态,是用户程序执行时机器所处的状态,是具有较低特权的执行状态,能执行规定的指令,只能访问指定的寄存器和存储区
··区别核心态和用户态
CPU中有一个程序状态寄存器(PSW),其中有一个二进制位,1表示"核心态",0表示"用户态"
··核心态和用户态的切换
核心态–>用户态:执行一条特权指令来修改PSW的标志位为"用户态",这个动作意味着操作系统将主动让出CPU使用权
用户态–>核心态:通过执行访管指令,引发中断,硬件自动完成转态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权。中断是从用户态切换到核心态的唯一方式。
(3)操作系统的内核
1.3.2中断与异常
(1)中断和异常的定义
中断也称外中断指来自CPU执行指令以外的事件的发生,中断来自外部硬件如I/O中断(由输入输出设备发出的中断,外部设备想要输入或输出数据),时钟中断(主要表现为进程的时间片轮转调度,这是实现并发的手段),这类中断通常与当前处理机运行的程序无关。
异常也称内中断或陷人trap(应用程序自己要求进行的中断,用户程序想要调用系统调用),指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页及专门的陷人指令等引起的事件。对异常的处理一般要依赖于当前程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理。
(2)中断处理过程(外中断)
①关中断:CPU响应中断后,首先要保护程序现场状态,在保护的过程中CPU不可以响应更高优先级的中断请求。如果响应了更高优先级的程序,那低优先级的程序现场保存不完整,之后处理完中断后就不能正确的回到中断前的状态
②保存断点:为保证中断服务程序执行完毕能正确的返回到原来的程序,必须将程序断点(程序计数器PC的值)保存起来
③寻找中断服务程序入口地址:实质是取出中断服务程序的入口地址送入到程序计数器PC中入口地址的获取:查询"中断向量表",找到相应的中断处理程序在内存中的存放位置
进入中断服务程序,开始执行中断服务程序
④保护现场和屏蔽字:进入中断服务程序后的第一件事,就是保护现场和屏蔽字,主要是保存程序状态字PSWR和某些通用寄存器的内容
⑤开中断:允许响应更高级中断此时如果有高级中断到来,可以去执行高级中断,因为被中断程序的现场信息已经被保存,响应高级中断不会导致被中断程序在恢复时现场信息不完整
⑥中断服务程序处理:执行中断服务程序,这也是中断的目的所在
⑦关中断:执行完中断服务程序,在程序结束前,要恢复现场,这个操作也不可以被打断
⑧恢复现场:中断服务程序将之前保存的相关寄存器的值恢复到原来的状态
⑨开中断:中断服务程序即将结束,重新打开中断,允许响应其他中断
⑩返回到断点继续执行:中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到程序断点处,以便原程序继续执行
1.3.3系统调用
系统调用是用户程序获得操作系统服务的唯一途径,是操作系统提供给应用程序的一个接口,应用程序通过这个接口向操作系统申请内核服务。凡是与共享资源有关的操作(如内存分配,I/O操作,文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。
系统调用的过程:
用户程序通过执行陷入指令(又称访管指令或trap指令)来发起系统调用请求操作系统提供服务,即用户程序执行访管指令,使CPU的状态由用户态变为核心态;
之后由操作系统内核程序再对系统调用请求做出相应处理;
处理完成后,操作系统内核程序再把CPU的使用权还给用户程序(即CPU状态会从核心态返回用户态)。
【例题】:
1.下列操作系统的各个功能组成部分中,( )可不需要硬件的支持。A
A.进程调度 B.时钟管理 C.地址映射 D.中断系统
··进程调度是由调度算法决定CPU的使用权,由操作系统实现,无需硬件的支持
··对于时钟管理,任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时间有关的事件,时钟节拍由配置为中断触发模式的硬件定时器产生
··逻辑地址到物理地址的映射都是靠硬件来实现的。无论是连续分配还是段表还是页表,都是一些地址寄存器,基址寄存器记录内存片段的开始,而另一个寄存器保存长度信息等
··中断的发生会激活很多事件,这包括硬件和软件的方面的事件,所以对于整个中断事件的接收、响应和处理需要有计算机的硬件和软件两方面的配合,共同完成。硬件中断装置负责捕获中断源发出的中断请求,并以一定的方式响应中断源,然后将处理器的控制权移交给特定的中断处理程序。中断处理程序则针对对中断事件的性质而执行相应的系列操作。
2.计算机区分核心态和用户态指令后,从核心态到用户态的转换是由操作系统程序执行后
完成的,而用户态到核心态的转换则是由( )完成的。A
A.硬件 B.核心态程序 C.用户程序 D.中断处理程序
··计算机通过硬件中断机制完成用户态到核心态的转换,发生中断事件时,触发中断,硬件中断机制把计算机状态置为核心态
··核心态程序只有在操作系统进入核心态之后才执行,D中断处理程序一般也在核心态执行,无法完成用户态到核心态的转换
··若用户程序能进行转换,则用户程序就能使用核心态指令,这会危害计算机的安全。
3. [2011统考真题]下列选项中,在用户态执行的是( ) A
A.命令解释程序 B.缺页处理程序 C.进程调度程序 D .时钟中断处理程序
··命令解释程序属于命令接口,是面对用户的,在用户态执行
··缺页处理程序和时间中断处理程序都是在核心态下执行的程序
··进程调度是操作系统内核进程,用户无法干预,在核心态执行
4. [2012 统考真题]下列选项中,不可能在用户态发生的事件是( )。C
A.系统调用 B.外部中断 C.进程切换 D.缺页
注意题目问的是不能在用户态发生的事件
··系统调用是操作系统提供给用户程序的接口,发生在用户态,被调用程序在核心态下执行
··外部中断是用户态到核心态的门,发生在用户态,在核心态完成中断过程
··进程切换是系统调用的执行程序事件,只能发生在核心态
··缺页产生后,在用户态发生缺页中断,进入核心态执行缺页中断服务程序
5. [2012 统考真题]中断处理和子程序调用都需要压栈以保护现场,中断处理一定会保存
而子程序调用不需要保存其内容的是( )。B
A.程序计数器PC B.程序状态字寄存器PSWR C.通用数据寄存器 D通用地址寄存器
··中断处理要保存断点(PC的内容)和程序状态字寄存器的内容,而子程序调用只需保存程序断点,即该指令的下一条指令地址
6. [2015 统考真题]处理外部中断时,应该由操作系统保存的是( ).B
A.程序计数器(PC)的内容B.通用寄存器的内容C.块表(TLB)中的内容D. Cache 中的内容
··外部中断处理过程,PC(程序计数器)值由中断隐指令自动保存,而通用寄存器内容由操作系统保存
7. [2015统考真题]假定下列指令已装入指令寄存器,则执行时不可能导致CPU从用户态变为内核态(系统态)的是( )。C
A. DIV RO, RI; (RO)V(R1)→R0 ··该指令有除零出现异常的可能
B. INTn; 产生软中断 ··INT为interrupt,为中断指令
C. NOT RO;寄存器RO的内容取非 ··不会出现异常所以不会出现状态转换
D. MOV RO, addr;把地址addr处的内存数据放入寄存器RO ··可能出现缺页异常
8. [2018 统考真题]定时器产生时钟中断后,由时钟中断服务程序更新的部分内容是ABC
A.内核中时钟变量的值
B.当前迸程占用CPU的时间
C.当前进程在时间片内的剩余执行时间
··时钟中断主要是处理和时间有关的信息和决定是否执行调度程序。和时间有关的所有信息包括系统时间,进程的时间片,使用CPU的时间,各类定时器。
9. [2020统考真题]下列与中断相关的操作中,由操作系统完成的是( )。BCD
A.保存被中断程序的中断点B.提供中断服务
C初始化中断向量表 D.保存中断屏蔽字
··CPU检测到中断信号后由硬件自动保存中断程序的断点
··硬件找到中断信号对应的中断向量(中断向量统一存放在中断向量表中,表由操作系统初始化),指明中断服务程序入口地址,接下来开始执行中断服务程序,保存程序状态字,中断屏蔽字等,提供与中断信号对应的中断服务。中断服务程序属于操作系统内核。
10. [2021统考真超]下列指令中。只能在内核态执行的是 B
A. trap指令 B. I/O指令 C数据传送指令 D.设置断点指令
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)