linux - (Linux 内核)中断处理问题

标签 linux linux-kernel operating-system kernel interrupt-handling

我在一本正在使用的操作系统书中读到,中断处理可能会对运行过程产生一些副作用,但没有更多细节。我想过在程序运行时阻止所有中断。有人可以告诉我我是否正确吗?使用该解决方案是否还有其他我忽略的副作用?

最佳答案

中断是一条通往 CPU 的直接线路,它告诉 CPU 停止正在执行的所有操作并运行一个称为中断处理程序的函数。中断只是暂时的,完成后所有应用程序都会恢复工作。

中断永远不应该被阻止,因为它们是必要的。

有硬件和软件中断。

例如,每当您按下键盘上的某个键时,就会调用中断,以便 CPU 和最终操作系统知道用户想要进行交互。

另一个示例(在没有 DMA 的极少数情况下)是当数据传入网卡时,CPU 必须停止一小部分时间来接受数据。

软件中断主要在操作系统中处理,它们对于处理各种重要的事情(例如多任务处理或不可恢复的错误)至关重要。

中断是一件很难平衡的事情,因为它们是低延迟操作所必需的,如果您滥用它们,您可能会发现性能严重下降。

除非您绝对不需要它们来实现实时操作,否则强烈建议不要接触它们。

关于linux - (Linux 内核)中断处理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28924811/

相关文章:

linux - 特权命令是如何控制的?

c - Linux c 中的 execl 函数

c - Linux内核模块中的Write函数被重复调用

c++ - 具有实时过程的银行家算法

cocoa - 以编程方式确定事件应用程序的 .icns 文件 (OS X)

C++ 管理进程

linux - 自定义 bash 完成的提示

linux-kernel - 从内核空间添加/删除 Linux 中的路由

linux - 更新 ARM TTBR(转换表基址寄存器)的缺点是什么?

ruby - 如何在 Mac OS 上恢复/System/Library/Frameworks/Ruby.framework/Versions/1.8?