操作系统复习之OS的运行环境

本文探讨了计算机系统中的核心态与用户态概念,阐述了它们的区别和切换机制,同时详细讲解了中断与异常处理过程,以及系统调用的工作原理。了解这些概念有助于理解操作系统内核与用户程序交互的关键机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

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.设置断点指令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值