操作系统学习笔记(2)——中断和异常
来源:互联网 发布:模拟人生4捏脸美女数据 编辑:程序博客网 时间:2024/06/18 05:12
一、中断的引入
- 当CPU启动通道(或设备)进行输入输出后,通道可以独立工作,CPU即转去做其他任务;
- 通道(或设备)输入输出完成后,通道通过向CPU发中断告诉CPU此次输入输出结束,让CPU继续执行原任务输入输出后的程序
- CPU执行指令时本身出现算术异常、零做除数、访存指令越界、虚存缺页等;
- 正常异常,即执行了一条trap指令,用于实现系统调用
1、中断:通道(或设备)完成输入输出后,通道会“通知”CPU此次输入输出结束,这个“通知”就是中断。
可以看到,中断与CPU正在执行的指令并没有关系。
2、异常:而异常则是正在执行的指令本身出现了错误(如算术溢出、地址越界)等。
3、但中断和异常的结果都是使得“CPU暂停正在执行的程序”:
CPU接受“中断”后停止当前的任务,去继续上一个任务或继续当时在执行的任务(如何选择则是与调度有关)。
CPU接受“异常”后停止当前任务,去处理这些错误。 处理完成后CPU返回暂停点继续工作。
4、中断:与正在执行的指令无关,可以屏蔽
异常:与正在执行的指令有关,不可屏蔽
四、中断/异常的分类
- 从提高资源利用率角度:高速设备(如磁盘)优先级高,慢速设备(如鼠标键盘)优先级低
- 交互式系统中:可以考虑用户响应满意优先原则
- 实时系统中:实时设备优先
- 硬件支持:屏蔽寄存器
- 软件实现:
屏蔽寄存器怎么设置?
七、中断/异常的响应
中断响应:CPU能够在每条机器指令执行周期内的最后时刻扫描中断寄存器,查看是否有中断信号。若无则CPU继续执行程序的后续指令;若有则转入操作系统内的中断处理程序
异常响应:异常是在执行指令的时候,由指令本身的原因发生的,CPU中指令的执行逻辑发现了异常则转入操作系统的异常处理程序
八、几个概念
PC寄存器:程序计数器,指向马上要执行的那一条指令
断点:检测到中断时,处理机刚执行完的那条执行恢复地址
恢复点:断点的逻辑后续指令地址,PC的值
现场信息:指中断那一刻确保被中断程序能继续运行的有关信息,如PC、通用寄存器、其他特殊寄存器等
核心态(系统态、监督方式、管态):允许特权指令执行的状态;此状态运行访问系统空间和用户空间
用户态(用户态、用户方式、目态):一般程序所运行的状态;只可以访问用户空间
PS(PSW)寄存器:程序状态字(处理机状态字),寄存了处理机的运行状态,包括:
- 当前处理机运行态(核心态or用户态)
- 当前处理机优先级
- 各种控制位(如外中断赋能位)
- 硬件保存PC、PSW
- 软件继续保存现场(保存现场以“栈”的方式)
- 分析原因并转中断/异常处理程序
- (进程调度)恢复现场
- 操作系统学习笔记(2)——中断和异常
- 操作系统学习笔记——保护模式——中断和异常(1)
- 操作系统的学习(1)——启动,中断,异常和系统调用。
- 操作系统—陷阱、中断、异常
- 操作系统中断和异常
- 操作系统——中断、异常和系统调用比较
- 【Linux操作系统分析】中断和异常(1)——中断描述符表IDT,I/O中断处理,中断向量
- 浅谈操作系统中断和异常
- 操作系统学习之路之中断、异常和系统调用
- 操作系统概念学习笔记 2 系统中断
- 中断和异常(笔记
- 《深入理解Linux内核》学习笔记——中断和异常
- 学习笔记——ARM Cortex-M0 异常与中断
- 操作系统实践之第二章(中断和异常)
- 中断_异常 学习笔记
- 中断+异常处理【学习笔记】
- 操作系统from清华大学向勇,陈渝 笔记(二)操作系统的启动、中断、异常、系统调用
- 操作系统的中断与异常(陷阱)
- Pro Android学习笔记(十一):了解Intent(中)
- C++Windows下创建多级目录
- Fixed数据类型
- CPU性能评估标准
- HTTP请求中POST与GET的区别
- 操作系统学习笔记(2)——中断和异常
- Python3包机制
- eMMC是什么?
- android跳转界面(页面)发现界面首先出现的是下面的部分,滑动才能看到上面的解决方法
- qemu-2.4.0.1编译问题
- -rw-r--r-- 是什么意思?
- linux lsof详解
- exits和in的区别
- Java 集合概览