gpt4 book ai didi

Linux 中断并发

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:20:59 25 4
gpt4 key购买 nike

中断是在所有处理器上执行,还是只在一个处理器上执行?例如,当我打字时,是否所有处理器都处理中断?或者只有他们中的一个,其余的继续做其他的事情?

最佳答案

这是低级处理的高级 View 。我描述的是一个简单的典型架构,实际架构可能更复杂,或者在这种细节级别上无关紧要的方式有所不同。

当中断发生时,处理器会检查中断是否被屏蔽。如果是,则在揭露它们之前什么也不会发生。当中断被取消屏蔽时,如果有任何未决中断,处理器将选择一个。

然后处理器通过跳转到内存中的特定地址来执行中断。该地址处的代码称为中断处理程序。当处理器在那里分支时,它会屏蔽中断(因此中断处理程序具有独占控制权)并将某些寄存器的内容保存在某个位置(通常是其他寄存器)。

中断处理程序执行它必须执行的操作,通常是通过与触发中断的外设通信来发送或接收数据。如果中断是由计时器引发的,则处理程序可能会触发操作系统调度程序,以切换到不同的线程。当处理程序完成执行时,它会执行一条特殊的中断返回指令,恢复保存的寄存器并取消屏蔽中断。

中断处理程序必须快速运行,因为它会阻止任何其他中断运行。在Linux内核中,中断处理分为两部分:

“上半部分”是中断处理程序。它执行最少的必要操作,通常与硬件通信并在内核内存中的某处设置一个标志。“下半部分”执行任何其他必要的处理,例如将数据复制到进程内存、更新内核数据结构等。它可能会花费时间,甚至会阻塞等待系统的其他部分,因为它在启用中断的情况下运行。

关于Linux 中断并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21698878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com