gpt4 book ai didi

linux-kernel - 为什么自旋锁在单处理器(单核)系统中不起作用?

转载 作者:行者123 更新时间:2023-12-04 02:56:45 27 4
gpt4 key购买 nike

我知道自旋锁与自旋一起工作,存在不同的内核路径并且内核是抢占式的,那么为什么自旋锁在单处理器系统中不起作用? (例如,在 Linux 中)

最佳答案

如果我理解你的问题,你会问为什么自旋锁在单核机器上是个坏主意。

它们应该仍然有效,但可能比真正的线程休眠并发要昂贵得多:

当您使用自旋锁时,您实际上是在断言您认为不必等待很长时间。您是说您认为使用繁忙循环维护处理器时间片比 sleep 线程和上下文转移到另一个线程或进程的成本更好。如果您必须等待很短的时间,您几乎可以立即休眠并被唤醒,但上下颠簸的成本比等待的成本更高。

这在多核处理器上更可行,因为它们比单核处理器具有更好的并发配置文件。在多核处理器上,在循环迭代之间,其他一些线程可能已经处理了您的先决条件。在单核处理器上,其他人不可能帮助你——你已经锁定了唯一的一个核心。

这里的问题是 如果你在锁上等待或 sleep ,你会向系统暗示你还没有你需要的一切,所以它应该去做一些其他的事情,稍后再回来找你 .使用自旋锁,你永远不会告诉系统这个,所以你把它锁起来等待其他事情发生 - 但与此同时,你是 撑起整个系统 ,所以其他事情不可能发生。

关于linux-kernel - 为什么自旋锁在单处理器(单核)系统中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9166779/

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