进程同步问题操作系统附加题作业由三个进程get,copy和put以及两个缓冲区buffer1和buffer2完成一项输入/输出操作
进程get的功能是把一张卡片上的信息从读卡机上读进buffer1;进程copy的功能是把buffer1中的信息复制到buffer2;进程put的功能是取出buffer2中的信息并从打印机上打印输出
试用P、V操作完成这三个进程间的尽可能并发正确执行的关系(用程序或框图表示),并指明信号量的作用和初值
某寺庙,有小和尚、老和尚若干
有一水缸,由小和尚提水入缸老和尚饮用
水缸可容十桶水,水取自同一井中
水井径窄,每次只能容一个桶取水
水桶总数为3个
每次入、取水仅为一桶,且不可同时进行
试给出有关取水、入水的算法描述
semaphoreempty=10;//表示缸中目前还能装多少桶水,初始时能装10桶水semaphorefull=0;//表示缸中有多少桶水,初始时缸中没有水semaphorebuckets=3;//表示有多少只空桶可用,初始时有3只桶可用semaphoremutex_well=1;//用于实现对井的互斥操作semaphoremutex_bigjar=1;//用于实现对缸的互斥操作young_monk(){while(1){P(empty);P(buckets);gotothewell;P(mutex_well);getwater;V(mutex_well);gotothetemple;P(mutex_bigjar);purethewaterintothebigjar;V(mutex_bigjar);V(buckets);V(full);}}old_monk(){while(){P(full);P(buckets);P(mutex_bigjar);getwater;V(