第6章_的进程管理与作业管理1.ppt

  1. 1、本文档共109页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章_的进程管理与作业管理1

* 打水、饮水问题分析 两个进程:1)小和尚取水 2)老和尚 需要互斥使用 临界资源: 1)水井 信号量:mutex1 初值=1 2)水缸 信号量:mutex2 初值=1 同步使用的信号量: 1)水桶个数 :count 初值=3 2)入缸的水量(桶数):empty 初值=10 3)出缸的数量(桶数):full 初值=0 * 打水进程 饮水进程 临界资源缸 水桶数 临界资源井 mutex2 count empty full mutex1 * 打水进程 P、V操作示意图 P(empty) 看水缸满否,满则阻塞打水进程 P(count) P(mutex1) 从井中取水 V(mutex1) P(mutex2) 送水入缸 V(mutex2) V(count) V(full) 申请打水的桶 互斥使用水井,即不允许两和尚同时打水 互斥使用水缸 归还水桶 水缸又多一桶水 和尚 i=1,2,3… * P(full) 看水缸是否有水,无水则阻塞饮水进程 P(count) P(mutex2) 从缸中取水 V(mutex2) V(empty) V(count) 申请取水的桶 互斥使用水缸 归还水桶 水缸少了一桶水 饮水进程 P、V操作示意图 饮水:和尚=1,2,3….. * 例 进程互斥和同步 哲学家甲请哲学家已、丙、丁到某处讨论问题,约定全体到齐后开始讨论。在讨论的间隙4位哲学家进餐,每人进餐时都需要使用刀,叉各一把,餐桌上的布置如图所示。请用信号量及PV操作说明这4位这些家的同步、互斥过程。 食品 甲 0 丁 3 丙2 已 1 叉1 刀1 刀2 叉2 * 进程互斥和同步 规定:所有哲学家先申请使用刀,只有申请刀后才能再申请叉,仅当拿到刀和叉后方可就餐。 0号和3号哲学家竞争刀1 1号和2号哲学家竞争刀2 0号和1号哲学家竞争叉1 2号和3号哲学家竞争叉2 * 设置4个信号:fork1、fork2、knife1、knife2。 REPEAT 讨论问题; IF(i=0) OR( i=3) then P(knife1) Else P(knife2); IF(i=0) OR( i=1) then P(fork1) Else P(fork2); 进餐; IF(i=0) OR( i=3) then V(knife1) Else V(knife2) IF(i=0) OR( i=1) then V(fork1) Else V(fork2); UNTIL false; * 补充题1:哲学家就餐问题 五个哲学家围坐在一个园桌周围,每个哲学家面前都有一盘通心面,由于面条很滑,所以要两把叉子才能夹住。相邻两个盘子间有一把叉子,餐桌如右图。 哲学家的生活包括两种活动:即吃面条和思考。当哲学家觉得饿时,他就试图分两次去取他左边和右边的叉子,每次拿一把,不分先后次序,如果成功,他就开始吃面条,吃完后放下叉子,继续思考。试用信号灯及P、V操作写出哲学家行为的程序描述,要求不能让某个(或某些哲学家饿死)。 * 补充题1:哲学家就餐问题 * 补充题2: 有十个读者和两个编辑同时处理一篇文章,对于读操作是可以同时进行的,若有读者正在读这篇文章,编辑就不能工作,若编辑正在处理这篇文章,读者就不能作读操作,编辑与编辑的工作也是互斥的,试用信号灯及P、V操作写出读者与编辑之间协同工作的程序描述。 * 解: mutex:用于读者与编辑、编辑与编辑的互斥信号灯,初值为1; mutex1:用于对couter操作的互斥的信号灯,初值为1。 * 补充题3: 理发师睡觉问题 理发店里有一位理发师、一把理发椅和n把供顾客等候理发坐的椅子。如果没有顾客,则理发师便在理发椅上睡觉,当一顾客来到时,他必须先叫醒理发师,如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,他们就坐下来等,如果没有空椅子,他就离开。用信号灯和P、V操作写出理发师和顾客行为的程序描述。 * 桌上有一个盘子,最多可存放两个水果,每次只能放入或取出一个水果。父亲总是放苹果到盘子中,而母亲则总是放香蕉到盘子中,两个儿子专等吃盘子中的香蕉,而两个女儿专等吃盘子中的苹果。请用P、V操作来实现父亲、母亲、儿子、女儿之间的同步与互斥关系。 作业:进程同步和互斥 * 例:利用信号量实现进程同步 问题:用P、V操作解决下面问题 司机进程: REPEAT

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档