电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

十三 真经之少林寺问题


发布日期:2022/11/11
 

十三 真经之少林寺问题

问题描述

某寺庙有小和尚老和尚若干庙内有一水缸由小和尚提水入缸供老和尚饮用水缸可容纳桶水每次入水取水仅为不可同时进行水取自同一井中水井径窄每次只能容纳一个水桶取水设水桶个数为试用信号灯和PV操作给出老和尚和小和尚的活动

问题分析

从井中取水并放入水缸是一个连续的动作可以视为一个进程从缸中取水为另一个进程

设水井和水缸为临界资源引入mutexmutex三个水桶无论从井中取水还是放入水缸中都一次一个应该给他们一个信号量count抢不到水桶的进程只好为等待水缸满了时不可以再放水了设empty控制入水量水缸空了时不可取水设full

The PV code Using Pascal

var mutexmutexemptyfullcount:semaphore;

mutex:=mutex:=;

empty:=;

full:=;

count:=;

cobegin

Procedure Fetch_Water Procedure Drink_Water

begin begin

while true while true

p(empty); p(full);

P(count); p(count);

P(mutex); p(mutex);

Get Water;Get water and

v(mutex); Drink water;

P(mutex); p(mutex);

pure water into the jar; v(empty);

v(mutex); v(count);

v(count); end

v(full);

end

coend

返回《操作系统之PV金典》

上一篇:进程的同步与通信:共享存储区机制

下一篇:系统调用陷入后需处理的若干公共问题