现有一个计算进程Pc和一个打印进程Pp,系统提供n个缓冲区,初态时所有缓冲区为空。计算进程每次向一个缓冲区写入数据,打印进程从一个缓冲区取出数据,给出程序框图、信号量初值和意义。

admin2016-05-12  32

问题 现有一个计算进程Pc和一个打印进程Pp,系统提供n个缓冲区,初态时所有缓冲区为空。计算进程每次向一个缓冲区写入数据,打印进程从一个缓冲区取出数据,给出程序框图、信号量初值和意义。

选项

答案(1)要设置的信号灯意义及其初值: data=0无有数据的缓冲区。 buffer=n有n个空闲缓冲区。 mutex=1对缓冲区存取操作的互斥信号量。 (2)计算进程Pc和打印进程Pp的流程。 计算进程Pc: 打印进程Pp: while(1){ while(1){ 计算出结果; semWait(data); semWait(buffer); semWait(mutex); semWait(mutex); 从缓冲区取出结果; 将数据结果放入缓冲区; sem(mutex); semSignal(mutex); semSignal(buffer); semSignal(data); 打印计算结果; } }。

解析
转载请注明原文地址:https://kaotiyun.com/show/svNx777K
本试题收录于: 操作系统题库理工类分类
0

最新回复(0)