如何使用信号量保持资源完整性

时间:2014-04-18 02:57:39

标签: operating-system mutex semaphore

我是计算机科学的新手,对你们中的一些人来说可能听起来很愚蠢。虽然我已经搜索了相关的问题,但这种情况在我脑海中浮现。 据我所知,互斥锁为部分或资源提供锁定功能。考虑一个缓冲区(一个大小为10的数组)的例子,其中一个线程在其中放入一些值。我们在使用它之后锁定互斥锁。整个过程由同一个线程完成。

现在,如果我必须使用信号量执行相同的过程。在这种情况下,我可以限制可以进入临界区的线程数。但是如何保持缓冲区的完整性。 (缓冲区上不同线程处理的读写操作)

2 个答案:

答案 0 :(得分:0)

信号量的通常解决方案是允许多个同时读者一个作家。有关示例,请参阅维基百科文章Readers-writers problem

答案 1 :(得分:0)

信号量是一种更高的抽象。信号量控制创建进程的能力,并确保创建的实例是不同的,在这种情况下它被踢出。简而言之。