操作系统内核 有3大概念:中断(硬中断)、异常(软中断)、系统调用(陷入),本文主要学习总结分享这3个概念。
|
中断
|
异常
|
系统调用
|
源头
|
外设引起,
具有随机性和突发性
|
应用程序意想不到的行为,
是可预料的
|
应用程序主动请求操作系统提供服务
|
响应方式
|
异步
|
同步
|
异步/同步
|
处理机制
|
持续的、对应用程序是透明的
|
杀死或重新执行意想不到的应用程序指令
|
等待或持续
|
中断(硬中断)
- 含义:由硬件设备发起的处理请求,称为中断,例:I/O中断、时钟中断(如:时间片)、控制台中断等。中断也会使CPU 由用户态变为内核态,使操作系统内核重新夺回对CPU的控制权(也是内核夺回CPU使用权的唯一途径),当然操作系统内核也会在合适的时候主动把CPU的使用权让给应用程序。
- 处理:
- 硬件处理:根据内部或外部事件设置中断标志,然后根据中断向量调用相应的中断服务例程。
-
- 软件处理:先进行现场保存,然后执行中断服务处理,最后清除中断标志和恢复现场。(暂停应用程序运行,保存应用程序运行状态,比如寄存器数据,待中断处理完成 即中断服务例程完成后 进行应用程序状态恢复)
异常(软中断)
- 含义:应用程序执行了非法指令或其他原因(如:CPU自身异常、内存错误),导致当前指令执行失败的处理请求,称为异常。
- 处理:操作系统内核选择 直接杀死进程 或准备资源重新尝试执行应用程序指令(重新尝试执行失败的指令,这过程对应用程序是透明的)。
系统调用(陷入)
- 含义:应用程序「主动」向操作系统发出的服务请求,调用系统提供的一些简单易用的服务。例:设备管理、文件管理、进程控制、进程通信、内存管理等
- 处理:等待或持续。系统的共享资源由内核统一管理,所以对共享资源的调用必须由操作系统内核来对各个请求进行协调处理,保证系统的稳定性和安全性。