我了解到,由于即使禁用中断,其他处理器也可以访问多处理器系统中的共享数据,因此我们实现了自旋锁来实现多处理器系统的同步
但教科书上说,如果多处理器系统同步没有禁用中断(仅实现自旋锁,而不是“禁用中断”),则资源可能会被其他处理器占用。所以在多处理器系统同步中禁用中断也是必不可少的
我不明白为什么我们仍然必须禁用多处理器系统的中断 谁能回答我的问题吗?
最佳答案
即使是单处理器系统也会禁用同步中断。这是操作系统序列化的主要方法。
当您获取自旋锁时,请尽快完成工作,然后释放。
如果您不阻止中断,则可能会获取自旋锁,然后被中断。
您的文字似乎建议在所有处理器上禁用中断。但情况并非总是如此。
关于linux - 为什么多处理器系统需要禁用中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36648817/