PV操作 阅览室登记问题
生活随笔
收集整理的這篇文章主要介紹了
PV操作 阅览室登记问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
例題: 有一閱覽室,讀者進(jìn)入時(shí)必須先在一張登記表上登記。該表中每個(gè)單元格代表閱覽室中的一個(gè)座位。讀者離開(kāi)時(shí)要注銷(xiāo)掉其登記信息。閱覽室共有 50 個(gè)座位。登記表每次僅允許一位讀者進(jìn)行登記或注銷(xiāo)。某一讀者登記時(shí),若發(fā)現(xiàn)登記表滿,則他需在閱覽室外等待,直至有空位再登記進(jìn)入。試用 類(lèi)Pascal語(yǔ)言 和 P、V 操作,描述讀者行為。【國(guó)防科技大學(xué)2000】(注:【南昌大學(xué)2002】類(lèi)似)
//答案: /* 基于 C 語(yǔ)言寫(xiě)的偽代碼 */semaphore seats = 50; // 用信號(hào)量 seats 表示可用的座位數(shù), 初值為 50; semaphore mutex = 1; // 信號(hào)量 mutex 表示登記表是否正在使用, 初值為 1. while(1){"讀者進(jìn)程Si()" // i = 1, 2, 3,...,nwhile(1){P(seats);P(mutex);//讀者登記V(mutex);//讀者閱讀P(mutex);//讀者注銷(xiāo)V(mutex);V(seats);//讀者離開(kāi)} }解題思路: 因?yàn)橹挥杏腥诉M(jìn)閱覽室,才能有人出,所以這里把讀者登記和注銷(xiāo)當(dāng)一個(gè)進(jìn)程,用信號(hào)量mutex來(lái)互斥讀者之間登記和注銷(xiāo);
總結(jié)
以上是生活随笔為你收集整理的PV操作 阅览室登记问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据库1024错误暂时性的解决办法
- 下一篇: 大学计算机案例实验教程文件,大学计算机实