首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
今有3个并发进程R、M和P,互斥使用一个可循环使用的缓冲区B,缓冲区B共有n个单元(n>0)。进程R负责从输入设备读信息,每读一个字符后,把它们存放在缓冲区B的一个单元中,进程M负责处理读入字符,若发现读入的字符中有空格,则把它改变成“;”;进程P负责把处
今有3个并发进程R、M和P,互斥使用一个可循环使用的缓冲区B,缓冲区B共有n个单元(n>0)。进程R负责从输入设备读信息,每读一个字符后,把它们存放在缓冲区B的一个单元中,进程M负责处理读入字符,若发现读入的字符中有空格,则把它改变成“;”;进程P负责把处
admin
2017-11-20
20
问题
今有3个并发进程R、M和P,互斥使用一个可循环使用的缓冲区B,缓冲区B共有n个单元(n>0)。进程R负责从输入设备读信息,每读一个字符后,把它们存放在缓冲区B的一个单元中,进程M负责处理读入字符,若发现读入的字符中有空格,则把它改变成“;”;进程P负责把处理后的字符取出并打印输出。当缓冲区单元中的字符被进程P取出后,又可用来存放下一次读入的字符。请添加必要的信号量和P、V(或wait()、signal())操作,实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。
选项
答案
本题还是一个生产者-消费者的变型,与2009年真题不同之处在于,2009年真题是一个生产者,对应两个消费者;本题是生产者-消费生产者-消费者类型,其实质是两个生产者一消费者关系。R是生产者,M是对应消费者,同时M也充当生产者,P是对应的消费者。把这些进程间的关系理清楚,是解题的基础。 本题的缓冲区B可描述为 char bufferB[n]; (1)缓冲区是一互斥资源,因此设互斥信号量mutex。 (2)上述进程的同步问题,需设置3个信号量,其中empty对应空闲的缓冲单元,初值为n;full_1对应缓冲区中待M处理的字符,初值为0;full_2对应缓冲区中已经处理过而待打印输出的字符,初值为0。另外,还需定义3个整型变量in、out_1、out_2,分别用来指示下一个可存放字符的缓冲单元、下一个待M处理的缓冲单元及下一个待打印输出的缓冲单元,它们的初值均为0。过程如下: char bufferB[n] //缓冲区字符数组 semaphore empty=n; //空闲缓冲单元数 semaphore full_1=0; //待M处理的字符数 semaphre full_2=0; //待P取出打印字符数 semaphore mutex=1; //缓冲区的互斥访间信号量 int in=0; //指示可存放字符的缓冲单元 int out_1=0; //指示下一个待M处理的缓冲单元 int out_2=0; //指示下一个待P取出打印的缓冲单元 R() { Char ch; while(1) { 从输入设备读取一个字符到ch中; P(empty); //检查缓冲区是否有可以存放新读入字符的缓冲单元 P(mutex); //申请访问缓冲区 bufferB[in]=ch; //存放新读入字符的缓冲单元 v(mutex); /I释放缓冲区 v(full_1); //待M处理的字符数增1 in=(in+1)%n; //in指针后移,遇末循环到0单元 } } M() //读者可参照R()自行写出注释 { while(1) { P(full_1); P(mutex); if(bufferB[out_1]==’ ’) burfer[out_1]=’;’; V(mutex); V(full_2); out_1=(out_1+1)%n; } } P() //者可参照R()自行写出注释 { char ch while(1) { p(full_2), p(mutex); ch=bufferB[out_2]; V(mutex); V(empty); out_2=(out_2+1)%n; 将字符ch打印输出; } }
解析
转载请注明原文地址:https://kaotiyun.com/show/5NRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
西汉初年,西域共有36国,其中以()人口最多。
《齐民要求.序》中写道:“今采摭经传,爰及歌谣,洵之老成,验之行事,起自农耕,终于醯醢(酱醋),资生之靡不毕书书;号日《齐民要术》……舍本逐末,贤哲所非……故商贾之事,阙而不录。”这段材料表明作者()。①采取古今资料的编撰原则②
下列关于湘军的叙述中不正确的是()。
胡适与李大钊进行“问题与主义之争”的主战场是()。
第一国际成立前,各国无产阶级强烈要求加强国际团结的直接原因是()。
周人重视婚姻,对婚礼尤为讲究。周代的婚礼有六项程序,即:①纳征②问名③纳采④请期⑤亲迎⑥纳吉下列选项顺序排列正确的是()
全国高校院系调整的具体时间是()。
第一个五年计划的具体时间段是()。
1922年2月,美、英、法、意、日五国通过了《五国海军条约》,规定了各国海军主力舰和航空母舰的限额,以及在东亚设置海军基地的要求等内容。该条约的缔结表明()
支持多道程序的操作系统,区别于其他操作系统的主要特征为()。
随机试题
阴道后穹窿穿刺术的护理,错误的是
A.心影随体位改变B.肺动脉圆锥显著突出C.心影梨形D.心影靴形E.主动脉根部扩张二尖瓣狭窄
建设项目的投资编码并不是概预算定额确定的分部分项工程的编码,它应综合考虑()和工程款的支付等因素,建立统一的编码,以服务于项目投资目标的动态控制。
我国对特种设备实行安全监察制度。国务院特种设备安全监督管理部门负责全国特种设备的安全监察工作,县以上地方负责特种设备安全监督管理的部门对本行政区域内特种设备实施安全监察,下列关于特种设备安全监察的说法中,错误的是()。
下列哪些事项需要在会计报表附注中进行披露()
关于绩效考核方法的陈述,正确的是()。
2005年1-10月,北京对俄罗斯的出口金额比2004年同期约净增()亿美元?2005年1-10月,北京对欧盟、日本和美国三大贸易伙伴的出口额在地方出口额中的合计比重为49%。地方出口额是()亿美元?
根据材料。回答121-125题。1990年以后,辽宁城乡居民收入差距出现了一个上升——下降——再上升的过程,其变动轨迹大体可以划分为三个阶段。第一阶段1990-1994年,城乡居民的收人比率由1.85扩大到2.14,收入绝对差额由714元扩
提出宇宙大爆炸模型的是:
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]……中,把奇数从数组中删除,偶数的个数
最新回复
(
0
)