linux - 为什么多处理器系统需要禁用中断

标签 linux multithreading operating-system synchronization

我了解到,由于即使禁用中断,其他处理器也可以访问多处理器系统中的共享数据,因此我们实现了自旋锁来实现多处理器系统的同步

但教科书上说,如果多处理器系统同步没有禁用中断(仅实现自旋锁,而不是“禁用中断”),则资源可能会被其他处理器占用。所以在多处理器系统同步中禁用中断也是必不可少的

我不明白为什么我们仍然必须禁用多处理器系统的中断 谁能回答我的问题吗?

最佳答案

即使是单处理器系统也会禁用同步中断。这是操作系统序列化的主要方法。

当您获取自旋锁时,请尽快完成工作,然后释放。

如果您不阻止中断,则可能会获取自旋锁,然后被中断。

您的文字似乎建议在所有处理器上禁用中断。但情况并非总是如此。

关于linux - 为什么多处理器系统需要禁用中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36648817/

相关文章:

linux - 如何导出每天的磁盘空间使用情况?

java - 检查应用程序何时启动?

java - File.length 平台和文件系统是否独立

c - 当 gdb 不支持操作系统时,使用 gdb 的 Python 回溯不同的操作系统线程

java - 斯卡拉/Java/Linux : is it possible to monitor a system process passively?

linux - 关闭/重新启动命令的行为在所有文件系统中都是相同的

c++ - 在 Debian Jessie 上安装多个 g++ 工具链的最佳方法是什么

java - Android 等待 UI 线程

multithreading - 将多个嵌入式 javafx JFXPanel 管理到 swing tabbedpane 中

c++ - 跨平台的电脑关机方式