首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
三个进程P1、P2、P3互斥使用一个包含N(N>O)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用getev
三个进程P1、P2、P3互斥使用一个包含N(N>O)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用getev
admin
2012-06-21
63
问题
三个进程P1、P2、P3互斥使用一个包含N(N>O)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。
选项
答案
定义信号量S1控制P1与P2之间的同步;S2控制P1与P3之间的同步;:empty控制生产者与消费者之间的同步;mutex控制进程间互斥使用缓冲区。程序如下: Var s1=0,s2=0,empty=N,mutex=1; Parbegin P1:begin X=produce(); /*生成一个数*/ P(empty); /*判断缓冲区是否有空单元*/ P(mutex); /*缓冲区是否被占用*/ Put(); If x%2==0 V(s2); /*如果是偶数,向P3发出信号*/ else V(s1); /*如果是奇数,向P2发出信号*/ V(mutex); /*使用完缓冲区,释放*/ end P2:begin P(s1); /*收到P1发来的信号,已产生一个奇数*/ P(mutex); /*缓冲区是否被占用*/ Getodd(); Countodd():=countodd()+1; V(mutex); /*释放缓冲区*/ V(empty); /*向P1发信号,多出一个空单元*/ end P3:begin P(s2) /*收到P1发来的信号,已产生一个偶数*/ P(mutex); /*缓冲区是否被占用*/ Geteven(); Counteven():=counteven()+1; V(mutex); /*释放缓冲区*/ V(empty); /*向P1发信号,多出一个空单元*/ end Parend
解析
转载请注明原文地址:https://jikaoti.com/ti/SEajFFFM
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
列宁在()中阐明了用暴力打碎旧的国家机器、建立无产阶级专政的必要性。
简要概述伯里克利时代雅典民主政治的主要表现,其积极意义与局限性。
罗马帝国分为东西两部的时间是()。
关于新文化运动的叙述中,不正确的是()。
下列各项不是“南北议和”形成的原因的是()。
关于“尊王攘夷”运动,不正确的说法是()。
列宁在()中系统地阐明了马克思主义的国家学说。
关于德国工业革命,说法不正确的是()。
1543年发表解剖学专著《人体结构论》的是()。
采用散列函数H(k)=3×kMOD13并用线性探测开放地址法处理冲突,在数列地址空间[0..12]中对关键字序列22,41,53,46,30,13,1,67,51;(1)构造散列表(画示意图);(2)装填因子;(3)等概
随机试题
Graves病时的代谢,下列哪项不正确
减压干燥法测定水分适合于
项目信息管理的目的是通过对项目信息传输的有效组织和控制,为项目的()提供服务。
下列哪种方法不利于缓解或调控幼儿激动的情绪?()
函的重要功能之一是()。
哪一因素与收益曲线(利率)平直无相关?()
2013年6月,习近平就坚定不移走两岸关系和平发展道路发表的重要意见中强调,从中华民族整体利益把握两岸关系大局,最根本的、最核心的是()
[*]
Therearemanymedicalproblemsinthemodernsociety.Oneofthemostalarmingmedicalproblemsintheworldisa【C1】diseasena
Childrenwhosemindswandermighthavesharperbrains,researchsuggests.Astudyhasfoundthatpeoplewhoappeartobecon
最新回复
(
0
)