当前位置:首页 > 操作系统概论(02323) > 正文内容

设有无穷多个整数缓冲区(即为无界缓冲池),A进程从输入设备逐个地读入整数并写入缓冲区,B进程则逐个地从缓冲区取出整数进行打印。其中存放整数的变量为item,缓冲区名为buffer,读取过程使用函数getAItem(int* itm)来完成,而打印整数使用函数printAItem(int itm)来完成。请用记录型信号量机制实现上述两个进程的同步算法。要求:补充完整下列算法程序中带标号处空缺的内容。(注:每个空缺部分的代码可能是多行代码)。 高老师2年前 (2024-03-26)操作系统概论(02323)12

设有无穷多个整数缓冲区(即为无界缓冲池),A进程从输入设备逐个地读入整数并写入缓冲区,B进程则逐个地从缓冲区取出整数进行打印。其中存放整数的变量为item,缓冲区名为buffer,读取过程使用函数getAItem(int* itm)来完成,而打印整数使用函数printAItem(int itm)来完成。请用记录型信号量机制实现上述两个进程的同步算法。要求:补充完整下列算法程序中带标号处空缺的内容。(注:每个空缺部分的代码可能是多行代码)。

(1)in=0;out=0;full.value=0;
(2)While(TRUE){ getAItem(&Item); buffer[in++]=item; signal(full);}
(3)While(TRUE){ wait(full); item=buffer[out++]; printAItem(item);}

扫描二维码免费使用微信小程序搜题/刷题/查看解析。

版权声明:本文由翰林刷题小程序授权发布,如需转载请注明出处。

本文链接:https://doc.20230611.cn/post/231407.html

分享给朋友: