操作系统 – 多核/多CPU机器中断如何工作?

我最近开始进入低级别的OS编程。我正在(很慢)目前正在通过两本较旧的书籍,XINU和Build Your Own 32 Bit操作系统,以及我之前的问题How to get started in operating system development中的精细SO人员提出的一些资源。

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

例如,DMA表示文件读取操作已经完成。哪个处理器/内核承认有中断的信号?它是启动文件读取的处理器/核心吗?是无论哪个处理器/核心首先得到它?

对不起,如果这是一个愚蠢的问题,我很新。

查看IoConnectInterrupt功能,您可以找到ProcessorEnableMask,它将选择允许运行InterruptService例程(ISR)的cpu。
基于这些信息,我可以假定某处处于低电平(见Adam’s的帖子),可以指定中断的路由。

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

http://stackoverflow.com/questions/301018/how-do-interrupts-in-multicore-multicpu-machines-work

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:操作系统 – 多核/多CPU机器中断如何工作?