当前位置:  开发笔记 > 运维 > 正文

多核/多浦机器中的中断如何工作?

如何解决《多核/多浦机器中的中断如何工作?》经验,为你挑选了2个好方法。

我最近开始深入研究低级OS编程.我(非常慢)目前正在编写两本较旧的书籍,XINU和构建自己的32位操作系统,以及我之前的问题,如何开始操作系统开发中的优秀SO人员建议的一些资源.

它可能只是我还没有在任何这些资源中遇到它,但可能是因为大多数这些资源是在无处不在的多核系统之前编写的,但我想知道的是中断如何在多核/多处理器系统中工作.

例如,假设DMA想要发出文件读取操作完成的信号.哪个处理器/内核确认发出中断信号?它是启动文件读取的处理器/核心吗?它是首先获得它的处理器/核心?



1> Ilya..:

查看IoConnectInterrupt函数,您可以找到ProcessorEnableMask,它将选择允许运行InterruptService例程(ISR)的cpu .
根据这些信息,我可以假设在低级别的某个地方(参见Adam的帖子),可以指定路由中断的位置.

在侧面注释文件操作与中断和/或dma没有直接关系.文件操作是文件系统概念,转换为低级别取决于文件系统所在的总线,它可能是IDE或SATA磁盘,或者甚至可能是usb存储器,在这种情况下,扇区读取将转换为通过usb总线的3逻辑操作,那里将由usb主机控制器驱动程序中断服务,但它与原始文件读取操作并不真正相关,可能会以任何方式拆分为较小的事务.



2> 小智..:

这篇文章http://www.alexonlinux.com/smp-affinity-and-proper-interrupt-handling-in-linux解释了如何通过linux处理smp机器中的中断

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有