gpt4 book ai didi

linux-kernel - 为什么不推荐使用 yielding mutex 实现?

转载 作者:行者123 更新时间:2023-12-04 04:11:15 25 4
gpt4 key购买 nike

在实现互斥量时,有几种架构选择,例如,

  1. 自旋互斥体(自旋锁)

  2. 休眠互斥体(等待时维护一个 FIFO 休眠队列)

  3. 产生互斥(等待时调用调度器运行另一个进程)

为什么 Yielding Mutex 最不受欢迎?使用它的后果有多严重?

最佳答案

休眠互斥体具有更多公平性。产生互斥锁会导致饥饿

让出模型的问题在于,一个进程可能会被要求一遍又一遍地让出,而其他进程却抢走了互斥锁(另请参阅 barging),或者只需要等待更短的时间.

根据新进程添加到队列的方式,甚至可能发生每次某个进程轮到它时,它被迫让步,因为互斥体已经被占用,饿死进程.

FIFO 模型确保等待进程以先到先得的方式得到服务。在操作系统中更难实现,但更公平

模型会变得更复杂。例如,操作系统也可能有进程的优先级,并且优先级会随着时间而改变。那么队列系统的实现可能会变得更加棘手。

关于linux-kernel - 为什么不推荐使用 yielding mutex 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18646790/

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