一、CPU
运算器、控制器与一系列寄存器与高速缓存构成。
两类寄存器
用户可见寄存器(用于减少内存访问次数)
控制与状态寄存器(用于控制 CPU的操作,只能由操作系统代码操作)
指令
特权指令:设置时钟、修改 PSW、启动I/O、内存清零、停机
非特权指令:访管指令
用户态 -> 内核态 中断、异常 + 陷入指令(唯一途径)
内核态 -> 用户态 设置 PSW 程序状态字
二、中断与异常
为什么引入中断?支持并行操作。
为什么引入异常?用于表示 CPU指令出现问题。
外中断
内中断(异常)
中断是异步的,异常是同步的。
类别 | 原因 | 异步/同步 | 返回行为 |
中断 Interrupt |
来自I/O设备、其它硬件部件 | 异步 | 总是返回到下一条指令 |
陷入 Trap | 有意识安排的 | 同步 | 返回到下一条指令 |
故障 Fault | 可恢复的错误 | 同步 | 返回到当前指令 |
终止 Abort | 不可恢复的错误 | 同步 | 不会返回 |
中断与异常的工作原理
相应过程
① 指令执行完检查中断寄存器是否存在中断信号
② 如果程序可中断,保存被中断程序状态(PC、PSW),再将中断触发器内容写入 PSW
③ 根据状态字去中断向量表查询中断入口程序
④ 将中断入口地址写入寄存器
⑤ 中断处理程序开始工作
⑥ 中断处理结束,CPU检测到中断返回指令,CPU恢复原来的状态(PC、PSW恢复到原来的值)
三、系统调用
限入指令引发异常(内中断)完成用户态到内核态的切换
+ 事先生成的系统调用号与参数(存放在通用寄存器中传递给内核)
+ 去系统调用表查找被调用的服务
233
原文:https://www.cnblogs.com/lemos/p/14013158.html