900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 操作系统小和尚挑水 老和尚喝水问题

操作系统小和尚挑水 老和尚喝水问题

时间:2022-11-18 23:40:42

相关推荐

操作系统小和尚挑水 老和尚喝水问题

某寺庙,有小和尚、老和尚若干。一水桶,有一水缸,由小和尚提水入缸供老和尚饮用。水缸可容10桶水,水取自同一井中。水井径窄,每次只能容一个水桶取水。水桶总数为3。每次入、取缸水仅为一桶,且不可同时进行。试给出有关取水、入水的算法描述。【北京邮电1998】

无论什么问题一定要按照常规去做,所以以一般思维逻辑思考就可以

小和尚肯定是要看缸里面有没有满,如果没有满,就去找水桶,然后就去打水,把水倒到水桶里面,,,,,一般的思维逻辑思考问题就行

1.总体来看要写两个进程,小和尚打水,老和尚要喝水

2.水缸的初值要设为empty=10水桶的初值要设为tong=3

3.取水缸/倒水往水缸里面 不能同时进行 所以要设置互斥变量s1=1

4.水井径窄,每次只能容一个水桶取水 所以要设置互斥变量s2=1

5.老和尚如何能喝水呢所以要设置full=0来判断水桶里面的水

p小和尚(){

wait(empty);//看水缸里面的水

wait(tong);//打水的桶

wait(s2)

打水

signal(s2);

wait(s1);

往水缸里面倒水

signal(s1)

signal(tong);

signal(full);

}

p老和尚(){wait(full);wait(tong);wait(s1);取水;signal(s1);signal(tong);signal(empty);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。