1.3 操作系统运行环境
字数
841 字
阅读时间
4 分钟
配合课本笔记共同使用
CPU的两种状态:“**内核态**”和“**用户态**”
处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令 处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令
一、内核态、用户态的切换
CPU中有一个寄存器叫程序状态字寄存器(PSW),其中有个二进制位(标志位)用于表示CPU目前的状态
PSW的标志位为0时表示CPU处于内核态,为1时处于用户态
当然,也有些CPU是反着来的,但是这无关紧要,因为我们学习的是对应状态的转化以及对应状态的作用
内核态
用户态
二、中断机制的基本原理
CPU会先检测中断信号,随后再通过中断向量表找到对应的中断处理程序
中断向量表最适合使用数组来实现
如何检测中断信号? 内中断:CPU在执行指令时会检查是否有异常发生 外中断:每个指令周期末尾,CPU都会检查是否有外中断信号需要处理
三、系统调用
1. 系统调用与库函数的区别
2. 系统调用的过程
牢记
- 陷入指令 :用户态执行
- 发出系统调用请求:用户态;处理系统调用:核心态
- 系统调用主要处理两件事情:切换状态、跳转到对应的内核程序(可以说系统调用是在用户态下实现的)
四、中断处理的全过程
需要多熟悉,有些题目会考察对该过程的了解情况,例如询问保存断点、更改CPU为内核态等是否为操作系统完成,此时要清楚其到底是操作系统完成还是硬件完成,这要求考生对中断处理过程有所了解
上部分为硬件完成,下部分为操作系统完成
将CPU模式改为内核态是在关中断之前,所以是由硬件完成的;而变为用户态则是在开中断之后实现的,即由操作系统完成