1. 什么是核心态(管态)与用户态(目态)?
操作系统为 CPU 划分了两种状态,核心态和用户态。
- 核心态: 运行操作系统内核程序。
- 用户态:运行用户自编程序或者外层应用程序。
2. 为什么要划分为核心态和用户态?
因为操作系统内核程序需要执行一些特权指令,而外层应用程序处于安全考虑不能执行这些指令。
Note: 指令划分
- 特权指令:只能由操作系统使用,用户不能使用的指令。如:启动 I/O 内存清零 修改程序状态字 设置时钟 允许/禁止终端 停机
- 非特权指令:用户可以使用的指令。如 控制转移 算数运算 取数指令 访管指令(使用户程序从用户态陷入核心态)
3. 用户态与核心态的转换?
- 用户态 -> 核心态:通过中断实现,并且是唯一途径。
- 核心态 -> 用户态:通过执行一个特权指令,将程序状态字(PSW) 的标志位设置为 "用户态"。