如何深入理解[自制操作系统]第11回中关于中断的复杂机制及其在系统运行中的关键作用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1607个文字,预计阅读时间需要7分钟。
目录
一、背景回顾
二、初步中断
三、中断分类
四、中断号
五、可编程中断控制器8259A
六、中断描述符表IDT
七、背景回顾
八、上一级回我,我们简单讲解了特权的原理,这一块其实我当时的也有些不理解...
目录
一、前景回顾
二、初识中断
三、中断分类
四、中断号
五、可编程中断控制器8259A
六、中断描述符表IDT
一、前景回顾
上一回我们简单地讲解了特权级的原理,这一块其实我当时也是啃的云里雾里,看了好大一会儿才明白。如果实在不怎么理解特权级检查也没关系,因为后面的代码中也不会涉及到手写特权级检查,这些都是CPU自己来完成。总之只需要对特权级检查有概念即可。本回我们来讲讲比较重要的中断。
二、初识中断
我们知道,整个操作系统其实是处于一个死循环的,为什么这么说呢?因为CPU总是不知疲倦的取指令,译指令,执行指令。如果我们不让操作系统处于死循环的情况下,CPU就可能会将指令后面的数据给解码为某个指令来执行,这样就会导致CPU出现异常,所以为了避免这种情况出现,我们通过类似下面的代码形式:
while (1){ 操作系统代码 }
让操作系统永远死循环在这里。在我们前面的代码中,如果仔细看的话会发现有jmp $的出现,它的目的也是让CPU执行到这里就一直死循环。那么每当有新的事件出现时,再去“通知”CPU跳转执行,执行完毕后如果没有新的事件便让CPU再次死循环。
本文共计1607个文字,预计阅读时间需要7分钟。
目录
一、背景回顾
二、初步中断
三、中断分类
四、中断号
五、可编程中断控制器8259A
六、中断描述符表IDT
七、背景回顾
八、上一级回我,我们简单讲解了特权的原理,这一块其实我当时的也有些不理解...
目录
一、前景回顾
二、初识中断
三、中断分类
四、中断号
五、可编程中断控制器8259A
六、中断描述符表IDT
一、前景回顾
上一回我们简单地讲解了特权级的原理,这一块其实我当时也是啃的云里雾里,看了好大一会儿才明白。如果实在不怎么理解特权级检查也没关系,因为后面的代码中也不会涉及到手写特权级检查,这些都是CPU自己来完成。总之只需要对特权级检查有概念即可。本回我们来讲讲比较重要的中断。
二、初识中断
我们知道,整个操作系统其实是处于一个死循环的,为什么这么说呢?因为CPU总是不知疲倦的取指令,译指令,执行指令。如果我们不让操作系统处于死循环的情况下,CPU就可能会将指令后面的数据给解码为某个指令来执行,这样就会导致CPU出现异常,所以为了避免这种情况出现,我们通过类似下面的代码形式:
while (1){ 操作系统代码 }
让操作系统永远死循环在这里。在我们前面的代码中,如果仔细看的话会发现有jmp $的出现,它的目的也是让CPU执行到这里就一直死循环。那么每当有新的事件出现时,再去“通知”CPU跳转执行,执行完毕后如果没有新的事件便让CPU再次死循环。

![如何深入理解[自制操作系统]第11回中关于中断的复杂机制及其在系统运行中的关键作用?](/imgrand/g82K9c85.webp)