中断以及 PIC可编程中断控制器
创始人
2024-06-01 11:52:19
0

1 中断分为同步中断(中断)和异步中断(异常)

1.1 中断和异常的不同

  • 中断由IO设备和定时器产生,用户的一次按键会引起中断。异步。

  • 异常一般由程序错误产生或者由内核必须处理的异常条件产生。同步。缺页异常,断点int3

异常如果由程序错误产生,内核通过发送一个信号来处理异常

如果由内核必须处理的异常条件诱发,那么内核必须执行所需要的所有步骤。

(思考信号产生的动机)

1.2 中断和进程上下文切换的不同

中断切换的代码不是一个进程,而是一个内核控制路径,代表中断发生时正在执行的进程在内核中执行。

1.3 中断敏感性

  • 当内核正打算做一些事情,中断随时可能会到来,因此中断必须很快完成(以便内核处理它的事情),尽可能把多的事情放到后面执行。

  • 中断随时可能到来,在处理一个中断时必须允许其他中断到来。这样可以允许尽量多的IO设备处于忙碌状态。所以中断应该允许嵌套

  • 临界区中,中断必须被禁止。这个要求对于临界区来说是必要的,但是对于内核规则来说是不应当的。所以应该减少临界区。

1.4 中断向量表

非屏蔽中断和异常的向量是固定的,可屏蔽中断的向量可以通过编程来改变。

1.5 IRQ和中断

IRQ(Interrupt request)是设备用来向可编程中断控制器发送中断请求的,IRQ在硬件上和中断控制器相连接。一个设备可能有多条IRQ,如PCI卡有4条。

当设备产生中断信号时,会发送到IRQ线上。中断信号会被中断控制器一直监视,如果有条IRQ线上同时出现中断信号,那么会选取IRQn值最小的那一个优先处理。

中断控制器会将从IRQn上接受来的中断信号转换为对应的向量,将这个向量放到I/O端口上以便CPU需要的时候通过读取数据总线来读。中断控制器将接受到的中断信号转发到CPU的INTR引脚上产生一个中断

接下来就是等待CPU把这个中断信号写进可编程中断控制器的I/O端口来确认这个向量。如果确实是,则清INTR线。

IRQ编号从0开始,IRQn对应的intel的缺省向量为n+32。IRQ和向量的对应关系可以通过一些指令来重新编程。

选择性的禁止IRQ线相当于"服务台"(中断控制器)让客户的需求(设备中断)排队,当开启IRQ时还会来处理需求

通过cli sti来开启和屏蔽可屏蔽中断相当于服务台暂时不上班,客户的需求会被忽略。

1.6 多APIC系统和中断分发方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FnHwwudK-1678462382637)(null)]

  • 静态分发

  • 动态分发 中断在CPU之间分发

CPU产生处理器之间的中断,这在SMP系统中很有用。

如果是单处理器,那么APIC可以弱化成8259A,LIN0 LIN1分别作为INTR和NMI引脚使用

也可以作为一个外部的I/O APIC使用(虽然它在处理器内部),本地APIC被激活。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...