gpt4 book ai didi

semaphore - 卡耐基梅隆大学 : Semaphores

转载 作者:行者123 更新时间:2023-12-02 19:22:25 25 4
gpt4 key购买 nike

请检查我对信号量的理解!

我理解计数信号量和二进制信号量背后的想法。然而,用 signal() 和 wait() 实现的自旋锁和信号量之间的区别对我来说有点混合在一起。

例如,自旋锁基本上有两个值(用于锁定或解锁的二进制真/假)。因此,自旋锁基本上是一个二进制信号量,对吗?

当另一个进程在内部时,任何试图进入临界区的进程都将无法在其被锁定时进入,并且将旋转并不断检查锁定状态,直到它被解锁,然后才能进入并锁定它。

使用 signal() 和 wait() 函数的信号量本质上是从某种变量中添加或减去一个值。临界区有一个限制。仅当变量具有某种值时才会打开它。消费者进程的一个示例实现是 wait(full),然后当它已满时执行,最后它发出 signal(empty) 信号。而生产者进程可能会等待(空)并在空为真时执行,然后当它完成时发出信号(满)。

wait() 和本质上在循环中“等待”的自旋锁有什么区别?

最佳答案

Unlike semaphores, spinlocks may be used in code that cannot sleep, such as interrupt handlers.

http://www.makelinux.net/ldd3/chp-5-sect-5.shtml

http://www.linuxjournal.com/article/5833

关于semaphore - 卡耐基梅隆大学 : Semaphores,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3649434/

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