操作系统 – 计数和二进制信号之间的差异

计数和二进制信号量有什么区别?

我在某处看到的是,两者都可以控制N个要求资源的进程。
两个都已经和自由州。

二进制信号量和计数信号量可以保护的资源有多少限制?

一次只允许一个进程使用资源…

还有什么区别吗?上述属性是否正确?

实际上,这两种类型都用于同步对共享资源的访问,无论是尝试访问的实体是进程还是线程。

区别如下:

二进制信号是二进制的,它们只能有两个值;一个表示进程/线程在关键部分(访问共享资源的代码),而其他应该等待,另一个指示关键部分是空闲的。

另一方面,计数信号量需要两个以上的值,它们可以具有您想要的任何值。
它们使用的最大值X可以使X进程/线程同时访问共享资源。

有关更多信息,请查看此链接。
http://www.chibios.org/dokuwiki/doku.php?id=chibios:articles:semaphores_mutexes

编辑
 计数信号量可以采用的最大值是要同时进入临界区的进程数。
再次,您可能会遇到要排除某个资源的情况,但您知道此资源可以通过最多数量的进程访问(例如X),因此您可以设置值为X的计数信号量。

这将允许X进程同时访问该资源;但是进程X 1必须等到临界区中的一个进程才能出来。

翻译自:https://stackoverflow.com/questions/10898022/differnce-between-counting-and-binary-semaphores

转载注明原文:操作系统 – 计数和二进制信号之间的差异