【发布时间】:2018-11-16 08:12:04
【问题描述】:
在Reader-writer问题中,如果一个Writer正在写入一些数据,其他Reader可以同时读取数据吗?
如果不是,这是操作系统中存在的代码-Galvin 如何处理上述情况
作家的流程:
do {
wait(rw mutex);
. . ./* writing is performed */
signal(rw mutex);
} while (true);
读者进程:
do {
wait(mutex);
read count++;
if (read count == 1)
wait(rw mutex);
signal(mutex);
. . ./* reading is performed */
wait(mutex);
read count--;
if (read count == 0)
signal(rw mutex);
signal(mutex);
} while (true);
【问题讨论】:
-
又一个人被这本书弄糊涂了。通常可以有多个读取器和一个写入器。这取决于对象的锁定方式。写入器可以取出排他锁并阻止读取器,也可以取出写入锁并允许读取器。
标签: operating-system