中断和异常
1. 中断的概念和作用
中断产生背景:解决串行执行程序,系统资源利用率低的问题。为解决该问题,发明了操作系统,发生中断意味着需要操作系统介入管理。
1,当中断发生时, CPU立即进入核心态
2,当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
3,对于不同的中断信号,会进行不同的处理
发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配/0设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权,有了中断,才能实现多道程序并发执行。
4. 用户态、核心态之间的切换是怎么实现的?
答: “用户态 核心态”是通过中断实现的,并且中断是唯一途径。
“核心态 用户态”的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为"用户态”。
2. 中断的分类
内中断信号来源CPU内部,与当前指令有关
外中断来源CPU外部,与当前指令执行无关
指令中断:如系统调用时的访问指令,又叫陷入指令、trap指令
硬件故障:如缺页
软件故障:整数除0
外中断:IO完成发出的中断信号
人工干预:用户强行终止
3. 外中断的处理过程
系统调用
- 什么是系统调用,有何作用?
答:操作系统提供“系统调用”功能,用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统发出请求。操作系统会对各个请求进行协调管理。应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、1/0操作、文件管理等) ,都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。- 系统调用与库函数的区别?
1. 系统调用(按功能分类):
以下事务处理需要特权指令,在核心态执行