中断异常和系统调用
思维导图
中断的作用
CPU上会有两种程序
- 操作系统内核程序
- 应用程序
中断是让操作系统内核夺回CPU使用权的唯一途径
内核态 —-> 用户态: 执行一条特权指令,—修改PSW的标志位为”用户态“, 这个动作意味着操作系统主动让出CPU使用权
用户态 —-> 内核态: 由中断引发, 硬件自动完成变态的过程 ,触发中断信号意味着操作系统将强行夺回CPU的使用权。
中断的类型
内中断(异常)
与当前执行的指令有关, 中断信号来源于CPU内部
- 陷阱、 陷入(trap )
由陷入指令引发的, 是应用程序故意引起的
- 故障 ( fault )
由错误条件引起的 , 可能被内核程序修改 ,内核程序修复后会把cpu的使用权交给应用程序, 让他继续执行。
- 终止 ( abort )
由致命错误引起的 , 内核程序无法修复的错误。 所以内核就不会将cpu使用权交给应用程序 。
如: 非法的使用特权指令。
外中断
与当前执行的指令无关, 中断信号来源于CPU外部
中断机制的基本原理
不同的中断信号 ,需要用不同的中断处理程序来处理, 当cpu检测到中断信号后, 会根据中断信号的类型去查询”中断向量表“ , 以此来找到相应的中断处理程序在内存中的存放位置。
什么是系统调用
操作系统作为用户 和 计算机硬件之间的接口, 需要向上提供一些 简单易用的服务接口。 主要包括 命令接口和程序接口, 其中程序接口 由一组系统调用组成。
系统调用 和 库函数的区别
例子 ,为什么系统调用是必须的 ?
需要通过系统调用来达到对共享资源的一种调度的作用。
什么功能要用系统调用实现 ?
应用程序通过系统调用请求操作系统的服务, 而系统中的各个共享资源都由操作系统内核统一进行掌管, 因此 ,凡是与共享资源有关的操作 (如: 内存分配, IO操作,文件管理等) ,都必须通过系统调用的方式像操作系统内核提出服务请求, 由操作系统内核代为完成 。 这样可以保证系统的稳定性和安全性。 防止用户进行非法操作。
系统调用的过程
重听, 相对来说是重点1.3_3_系统调用
6.10
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Rayce. Blogs!
评论