我在一本正在使用的操作系统书中读到,中断处理可能会对运行过程产生一些副作用,但没有更多细节。我想过在程序运行时阻止所有中断。有人可以告诉我我是否正确吗?使用该解决方案是否还有其他我忽略的副作用?
最佳答案
中断是一条通往 CPU 的直接线路,它告诉 CPU 停止正在执行的所有操作并运行一个称为中断处理程序的函数。中断只是暂时的,完成后所有应用程序都会恢复工作。
中断永远不应该被阻止,因为它们是必要的。
有硬件和软件中断。
例如,每当您按下键盘上的某个键时,就会调用中断,以便 CPU 和最终操作系统知道用户想要进行交互。
另一个示例(在没有 DMA 的极少数情况下)是当数据传入网卡时,CPU 必须停止一小部分时间来接受数据。
软件中断主要在操作系统中处理,它们对于处理各种重要的事情(例如多任务处理或不可恢复的错误)至关重要。
中断是一件很难平衡的事情,因为它们是低延迟操作所必需的,如果您滥用它们,您可能会发现性能严重下降。
除非您绝对不需要它们来实现实时操作,否则强烈建议不要接触它们。
关于linux - (Linux 内核)中断处理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28924811/