操作系統實驗 # 圖書館閱覽室問題 僞碼及編程實現

問題描述:假定閱覽室最多可同時容納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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章