中断和异常
来源:互联网 发布:linux cp 两个文件 编辑:程序博客网 时间:2024/05/22 13:47
采用中断原因:CPU速度远远高于外设采用轮询的机制太浪费CPU,因此需要一种机制,当外设需要CPU处理外设相关事件的时候能够主动通知操作系统,即打断操作系统和应用程序的正常执行,处理相关外设,然后在处理完成后恢复原来的执行状态。在操作系统中,这钟机智成为中断机制。该机制是实现进程/线程强栈是调度的一个重要基石。
三种特殊的中断事件:(1)异步中断(asynchronous interrupt)或外部中断:简称中断。由外部设备引起的外部事件如I/O中断、时钟中断、控制台中断等是异步产生的(即产生的时刻不确定),与CPU的执行无关。(2)内部中断:也称异常(exception),在CPU执行指令期间检测到不正常的或非法的条件(如除零错、地址访问越界)所引起的内部事件称作同步中断(synchronous interrupt)。(3)陷入中断(trap interrupt):也称软中断(soft interrupt),在程序中使用请求系统服务的系统调用而引发的事件。系统调用(system call)简称trap。
(1)中断描述符表(Interrupt Descriptor Table):LIDT(Load IDT Register)指令和SIDT(Store IDT Register)指令
(2)IDT gate descriptors:Interrupt/Exceptions 应该使用Interrupt Gate和Trap Gate。区别:调用Interrupt Gate时,Interrupt会被CPU自动禁止;而调用Trap Gate时,CPU则不会禁止或打开中断,保留原来的样子。
注:自动禁止:CPU跳转到interrupt gate里的地址时,在将EFLAGS保存到栈上之后,清除EFLAGSdeIF位,以避免重复触发中断。而Trap Gate不会禁止中断,因不会出现嵌套系统调用。
在IDT中,3种类型的Descriptor:(1)Task-gate descriptor(没有用到)(2)Interrupt-gate descriptor(中断方式)(3)Trap-gate descriptor(系统调用)
- 中断和异常
- 陷阱,中断和异常
- 操作系统中断和异常
- 中断和异常
- 中断和异常小结
- 中断和异常
- 中断和异常
- 中断和异常
- 中断和异常
- 中断和异常(笔记
- 中断和异常
- 中断和异常
- 中断和异常
- 中断 和 异常
- 3中断和异常
- 陷阱,中断和异常
- 中断和异常
- 中断和异常
- 排序之希尔排序
- 深度学习笔记七:循环神经网络RNN(基本理论)
- Spring+quartz删除超时订单的测试
- 谷歌挖苹果芯片构架师自研芯片,无核心技术必受制于人
- SDM 编译环境配置,配置Boost,opencv,Eigen
- 中断和异常
- Android Studio更新到3.0以后,预览无法显示 v4,v7包控件的解决方法
- 采用感知哈希算法基于python-PIL的图像去重
- 安卓Activity的退出应用程序
- FPGA学习过程记录一
- spark-submit 参数设置说明
- 关系型数据库与数据库管理系统
- 什么是servlet:1分钟理解Servlet的概念
- python学习笔记(循环)