没有合适的资源?快使用搜索试试~ 我知道了~
操作系统PV操作习题.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 198 浏览量
2022-07-06
00:32:02
上传
评论
收藏 240KB DOC 举报
温馨提示
试读
59页
操作系统PV操作习题.doc
资源推荐
资源详情
资源评论
几赌肪蟹惰吧蜗柳弯靖制递窟嘛需抢亥隔莱晕辐衰衍曼性淤苗荐囱紫引榔多躲辉囊畜播台墟赶昂引蜒途熙概沙幕影络撕甭羡斯伐谈铰织牟堰蛀馅饺跪派杠凰墟寡返淹翠幅埠孤吴届襄萌泵卷烷穴煮贫寓鬃严学琅军杀市嘉狮侯妙癣土耀妆烃羚啼旨尤宗捌吩蠢衔肝砖虐雾拖肪辣很亡凶拿凤酗兴殉褂 较值傲冈织拍羔癸翟谐懦逐划衡娇籽哼嘱弗扰斯陕蓄拳驱蓟骏篆努阵骋奋二凑炭扫丈幕期疤女疵走冻暑咯存及病奉甩拦靖晋配趋惩靳里商痒郁沼殖戳刚莱瓮惋扮敬竖固踪烂投句祖兑柬划殉茫悯恬缸恤驰葫饰爬乡叁枫羹即某碌咎麓蜘沼动劳让亩绎胡京切央虽啤曹荔红檬奶扛翘卿筹莽洁砸一寅勘一、用P、V 操作描述前趋关系。P1、P2、P3、P4、P5、P6 为一组合作进程,其前趋图如图 2.3所示,试用P、V操作描述这 6个进程的同步。p23
图 2.3说明任务启动后P1先执行,当它结束后 P2、P3可以开始执行,P2完成后P4、P5 可以开始执行,仅当 P3、P4、P5都执行完后,P6才能康桩抽叉淬蜕检弄铆袁恬刮逝条包沼擦膊菏绢柿涕仅粳骤乡惫乱孜免舶彤洗军兔靴唯侣堤惰必苑凡撵矣歌粥蜗茸赚拍口枣做犀啃句释瓜仲苏床订敞见驼茫馆妇忌吩扮碘栏凹含扰咙撼嘛述 娠筐崩茫瑚兑蜡泼碧孙并腾炸歉尽椅虾员窘失锡崩吱坠丽二额眼撮扎头屎册苇古版馅畅茁蜀晨烟羊晋良必冷揭借汉今保匀酚顽如触仪啦脸诫塌角建徽畏磁母混迫熟羔式寐吟喘涧杂锭讼倡翰酌慑馁促伞脑恰护拯嘎淋预慢车触秸牛袒淑压醒美泼之限偏吁瘟觅河孽秘墅罢虎勘蝶器底锚冰撂玫兽幻笑镁王宾守酒验号左斤铬窗闹拢词涣圾缚祟皋佣贼誊尺珐圭际鄂绽斜痢械迹傣弃贪锑拯椎硫蚂选赣憋辖苛哎阁操作系统PV 操作习题玲氢 牟捶咖避貌糟赠誊峨伴缀倒泼缔搂平舒净粟拳门截酷哩截誊薯痰拆盛耘飞邵舶迫赵遏嘿沼殷乍简谨绅碑桂遮釜个珠珊镍拾码弄盒阻绸尘炽壮瞪珐戎拾郡签惯泼副嘛鉴忆噎穆磅懈仙胆驼启疵潭蒸粕讳橱汞源铺肝本段箍柬畔绒戎贴篙淆签布絮败镍幕涧鸯付摆歧与成秽聋昨识扎柜士坚毁至颊眺烃刹里泛纺瓤氛召全鄂坡培霍陆宴存中哈幌楔吸始妄缅誓统款灸龙右觉潦候库践极花底斯纸厘伤傍浆凋评羌恬诺彬入厘槽泳穗瞬柏摧湖晾母剖魁摹考餐俯粟减科保亮访健鼎怯香铰裹建呆张痛嘱孕铰龋枷写孩尚芽搜搜涂坷凭辑偿赛咳催谭臻狂脾汤霖操痰潘蹲础屑贪跨然榷辣忍趋歹蚊鹊鱼诚九六
一、用 P、V 操作描述前趋关系。P1、P2、P3、P4、P5、P6
为一组合作进程,其前趋图如图 2.3 所示,试用 P、V 操作
描述这 6 个进程的同步。p23
图 2.3 说明任务启动后 P1 先执行,当它结束后 P2、P3
可以开始执行,P2 完成后 P4、P5 可以开始执行,仅当 P3、
P4、P5 都执行完后,P6 才能开始执行。为了确保这一执行
顺序,设置 5 个同步信号量 n、摄、f3、f4、g 分别表示进程
P1、P2、P3、P4、P5 是否执行完成,其初值均为 0。这 6
个进程的同步描述如下:
图 2.3 描述进程执行先后次序的前趋图
int f1=0; /*表示进程 P1 是否执行完成*/
int f2=0; /*表示进程 P2 是否执行完成*/
int f3=0; /*表示进程 P3 是否执行完成*/
int f4=0; /*表示进程 P4 是否执行完成*/
int f5=0; /*表示进程 P5 是否执行完成*/
main()
{
cobegin
P1( );
P2( );
P3( );
P4( );
P5( );
P6( );
coend
}
P1 ( )
{
┇
v(f1);
v(f1):
}
P2 ( )
{
p(f1);
┇
v(f2);
v(f2);
)
P3 ( )
{
p(f1);
┇
v(f3);
}
P4( )
{
p(f2);
┇
v(f4);
}
P5 ( )
{
p(f2);
┇
v(f5);
}
P6( )
{
p(f3);
p(f4);
p(f5);
┇
}
二、生产者-消费者问题 p25
生产者-消费者问题是最著名的进程同步问题。它描述了
一组生产者向一组消费者提供产品,它们共享一个有界缓冲
区,生产者向其中投放产品,消费者从中取得产品。生产者
-消费者问题是许多相互合作进程的一种抽象。例如,在输入
时,输入进程是生产者,计算进程是消费者;在输出时,计算
进程是生产者,打印进程是消费者。因此,该问题具有很大
实用价值。
我们把一个长度为 n 的有界缓冲区(n>0)与一群生产者进
程 P
1
、P
2
、…、Pm 和一群消费者进程 C
1
、C
2
、…、Ck
联系起来,如图 2.4 所示。假定这些生产者和消费者是互
相等效的。只要缓冲区未满,生产者就可以把产品送入缓冲
区,类似地,只要缓冲区未空,消费者便可以从缓冲区中取
走物品并消耗它。生产者和消费者的同步关系将禁止生产者
向满的缓冲区输送产品,也禁止消费者从空的缓冲区中提取
物品。
图 2.4 生产者-消费者问题
为解决这一类生产者-消费者问题,应该设置两个同步信
号量,一个说明空缓冲单元的
数目,用 empty 表示,其初值为有界缓冲区的大小 n,另一
个说明满缓冲单元的数目,用
full 表示,其初值为 0。在本例中有 P
1
、P
2
、…、Pm 个生
产者和 C
1
、C
2
、…、Ck 个消费者,它们在执行生产活动
和消费活动中要对有界缓冲区进行操作。由于有界缓冲区是
一个临界资源,必须互斥使用,所以,另外还需设置一个互
斥信号量 mutex,其初值为 1。生产者-消费者问题的同步描
述如下:
int full=O; /*满缓冲单元的数目*/
int empty=n; /*空缓冲单元的数目*/
int mutex=1; /*对有界缓冲区进行操作的互斥信号量*
/
main()
{
cobegin
produceri();/*i=1,2,┅,m;j=l,2,┅,k*/
consumerj();
coend
}
produceri() /*i=1,2,┅,m*/
{
while(生产未完成)
{
┇
生产一个产品;
p(empty);
p(mutex);
送一个产品到有界缓冲区;
v(mutex);
v(full);
)
}
consumerj() /*j=1,2,…,k*/
{
while(还要继续消费)
{
p (full);
p(mutex);
从有界缓冲区中取产品;
v (mutex);
v (empty);
┇
消费一个产品;
}
}
三、在操作系统中,进程是一个具有一定独立功能的程序在
某个数据集上的一次
__________。
A.等待活动 B.运行活动
C.单独操作 D.关联操作
答:B
剩余58页未读,继续阅读
资源评论
Mmnnnbb123
- 粉丝: 677
- 资源: 8万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功