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

2026-04-11 11:440阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1607个文字,预计阅读时间需要7分钟。

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

目录

一、背景回顾

二、初步中断

三、中断分类

四、中断号

五、可编程中断控制器8259A

六、中断描述符表IDT

七、背景回顾

八、上一级回我,我们简单讲解了特权的原理,这一块其实我当时的也有些不理解...

目录
一、前景回顾
二、初识中断
三、中断分类
四、中断号
五、可编程中断控制器8259A
六、中断描述符表IDT

一、前景回顾

  上一回我们简单地讲解了特权级的原理,这一块其实我当时也是啃的云里雾里,看了好大一会儿才明白。如果实在不怎么理解特权级检查也没关系,因为后面的代码中也不会涉及到手写特权级检查,这些都是CPU自己来完成。总之只需要对特权级检查有概念即可。本回我们来讲讲比较重要的中断。

二、初识中断

  我们知道,整个操作系统其实是处于一个死循环的,为什么这么说呢?因为CPU总是不知疲倦的取指令,译指令,执行指令。如果我们不让操作系统处于死循环的情况下,CPU就可能会将指令后面的数据给解码为某个指令来执行,这样就会导致CPU出现异常,所以为了避免这种情况出现,我们通过类似下面的代码形式:

while (1){   操作系统代码 }

  让操作系统永远死循环在这里。在我们前面的代码中,如果仔细看的话会发现有jmp $的出现,它的目的也是让CPU执行到这里就一直死循环。那么每当有新的事件出现时,再去“通知”CPU跳转执行,执行完毕后如果没有新的事件便让CPU再次死循环。

阅读全文

本文共计1607个文字,预计阅读时间需要7分钟。

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

目录

一、背景回顾

二、初步中断

三、中断分类

四、中断号

五、可编程中断控制器8259A

六、中断描述符表IDT

七、背景回顾

八、上一级回我,我们简单讲解了特权的原理,这一块其实我当时的也有些不理解...

目录
一、前景回顾
二、初识中断
三、中断分类
四、中断号
五、可编程中断控制器8259A
六、中断描述符表IDT

一、前景回顾

  上一回我们简单地讲解了特权级的原理,这一块其实我当时也是啃的云里雾里,看了好大一会儿才明白。如果实在不怎么理解特权级检查也没关系,因为后面的代码中也不会涉及到手写特权级检查,这些都是CPU自己来完成。总之只需要对特权级检查有概念即可。本回我们来讲讲比较重要的中断。

二、初识中断

  我们知道,整个操作系统其实是处于一个死循环的,为什么这么说呢?因为CPU总是不知疲倦的取指令,译指令,执行指令。如果我们不让操作系统处于死循环的情况下,CPU就可能会将指令后面的数据给解码为某个指令来执行,这样就会导致CPU出现异常,所以为了避免这种情况出现,我们通过类似下面的代码形式:

while (1){   操作系统代码 }

  让操作系统永远死循环在这里。在我们前面的代码中,如果仔细看的话会发现有jmp $的出现,它的目的也是让CPU执行到这里就一直死循环。那么每当有新的事件出现时,再去“通知”CPU跳转执行,执行完毕后如果没有新的事件便让CPU再次死循环。

阅读全文