操作系统实验 # 图书馆阅览室问题 伪码及编程实现
程序员文章站
2022-04-11 12:57:53
...
问题描述:假定阅览室最多可同时容纳100个人阅读,读者进入时,必须在阅览室门口的一个登记表上登记,内容包括姓名、座号等,离开时要撤掉登记内容。用P、V操作描述读者进程的同步算法。
原理及代码解读见我的另一篇文章:操作系统 # 从零开始的信号量机制理论与实践
https://blog.csdn.net/qq_33583069/article/details/105877936 link~
伪代码实现
var mutex,res:semaphore;
mutex:=1; res:=100;
Procedure reader(readerID);
{
P(res);
P(mutex);
registrationInformation(readerID);
V(mutex);
reading();
P(mutex);
cancelRecord(readerID);
V(mutex);
V(res);
}
C/C++实现
#include<stdio.h&g