中断总结:软件中断&&硬件中断&&时钟中断

73 阅读3分钟

1.硬件中断

在下面的这个图里面去,新出的展示了这个相关的内容,我们来梳理一下:

1)外部设备,比如键盘写入数据之后,我们的操作系统怎么知道磁盘上面写数据了???

2)实际上,写入数据之后,就会发起中断,我们的中断控制器接收到信号,在一个类似于寄存器的设备上面存在来这个外部设备的中断编号;

3)因此这个寄存器实际上不仅仅是在我们的CPU上面是存在的,在外部设备上面其实也是有的,否则这个操作系统怎么知道哪一个外部设备出现的中断呢;

4)我们的CPU上面得到中断的信号之后,就会从中断控制器里面的这个寄存器上面拿到这个外部设备的中断编号,进而知道哪一个外部设备中断啦,也就是哪一个外部设备准备就绪了;

5)以上就是我们的下面的这个图片里面的左边的关于硬件的相关的内容;

image-20251007194739059

6)没中断的时候,时钟源以固定的频率给CPU发送中断,CPU进行进程调度,后来时钟源集成到CPU内部,所以我们的计算机有了主频,没中断的时候CPU自己执行shedule方法即可;

image-20251007203147556

上面是关于中断的介绍,下面我们来看一下为什么需要中断,下面的这个内容来自于我使用lsitenhub制作的博客里面的片段,需要音频的可以找我进行获取,下面的这个对话里面非常清楚的记录了为什么需要中断机制:

image-20251008201126593

CPU根据中断号码,找到中断服务程序进行执行这个中断的具体需要执行的操作逻辑:

image-20251008201242791

2.时钟中断

上述的硬件中断,是我们的外部设备发出来的信号,当我们的外部设备没有任何的行为的时候,我们的操作系统难道就是什么都不去做么,no,操作系统内部还是存在这个时钟中断的;

image-20251008201504759

每个进程都存在着自己的时间片,我们的操作系统也是通过这个时钟源的滴答频率判断这个程序是不知到时间了,进行这个进程的调度切换;

3.软件中断

软件中断分为这个异常和陷阱(系统调用,普通用户没有这个相关的权限);

异常就是除零错误,或者是野指针的报错;

image-20251008201848669

下面是关于这个系统调用的具体的执行逻辑和流程,感兴趣的可以自己查看,主要就是操作系统在这个中断向量表里面根据这个编号执行这个对应的中断服务程序即可;

image-20251008202122513

111