1、进程同步,例题解析:(综合应用题) 1、有3个进程PA、PB、PC协作解决文件打印的问题:PA将文件记录从磁盘读入内存的缓冲区1,每执行一次读入一个记录,PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录将缓冲区2的内容打印出来,每执行一次打印一个记录。如图所示,缓冲区的大小和一个记录一样,请用P、V操作来保证文件的正确打印。,进程同步,例题解析:(综合应用题) 2、桌子上有一只盘子,最多可容纳两个水果,每次只能放入或取出一个水果,爸爸专向盘子放苹果(apple),妈妈专向盘子放桔子(orange)。两个儿子专等听吃盘子中的桔子,两个女儿专等吃盘子中的苹果。请用P、V操作来实现爸爸、妈
2、妈、儿子、女儿之间的同步与互斥关系。,进程同步,例题解析:(综合应用题) 3、桌子上有一只盘子,可以放一个水果。爸爸总是放苹果到盘子中,而妈妈总是放香蕉到盘子中。一个儿子专等吃盘子中的香蕉,而一个女儿专等吃盘子中的苹果。请用P、V操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。,进程同步,例题解析:(综合应用题) 4、有一个东西方向的独木桥,如图所示,每次只能有一人通过,且不允许人在桥 上停留,东、西两端各有若干人在等待过桥。请用P、V操作实现东西两端人过桥的问题。,进程同步,例题解析:(综合应用题) 5、复印室有一个操作员为顾客复印资料(mutex=1),有5把椅子(chair=5)供
3、顾客休息并等待(waiting=0)复印。如果没有顾客,则操作员休息,当顾客来到复印室时(standup=1),如果有空椅子则坐下来,当操作员空闲时顾客站起来(ready=0)唤醒操作员进行复印,复印完成后(finished=0)离开复印室,如果没有空椅子则离开复印室。试作P、V操作实现顾客和操作员活动的同步。,void operator() p(ready); 复印; p(finished); void customer() p(mutex); if(waiting6)waiting=waiting+1;v(mutex);elsev(mutex);离开;p(chair); p(standard); v(chair); v(ready);p(finished); v(standup);p(mutex); waiting-1; v(mutex); ,