
二、利用信号量实现前趋关系的案例
有些进程在运行时具有前趋关系。例如,进程C完成数据处理后进程P才可以进行结果打印,则进程C和P之间存在前趋关系,即C→P。利用信号量可以实现进程间的前趋关系。
(一)基本方法
在实现前趋关系时,可以为进程C和P定义一个公用信号量S,并设置初始值0。进程C完成数据处理后要执行Signal(S)操作向进程P发一个信号,而进程P在打印之前要执行Wait(S)操作,即收到信号后才可以打印。
(二)案例分析
在操作系统中也有很多有趣的进程同步问题可以归为这一类,如公共汽车问题、围棋问题、抽烟问题、4×100接力赛问题等。下面以公共汽车问题为例进行介绍。
1. 案例介绍
在公共汽车上,司机和售票员各行其职,司机负责开车和到站停车;售票员负责售票和开、关车门,当售票员关好车门后,驾驶员才能开车行驶。试用Wait、Signal操作实现司机与售票员间的同步。
2. 案例分析
这是一个典型的用信号量实现前趋关系的案例:司机必须到站停车后售票员才可以打开车门,乘客上车,售票员关上车门后司机才可以再开车行驶。所以,在这个案例中要定义两个信号量,一个是司机何时开车,一个是售票员何时开车门。司机和售票员的同步关系可描述如下:
Semaphore S1=0; /*开车信号
Semaphore S2=0; /*开车门信号
Driver( ){
While(1){
正常行车;
到站停车;
Signal(S2);
Wait(S1);
}
}
BookingClerk( ){
While(1){
售票;
Wait(S2);
开车门;
关车门;
Signal(S1);
}
}
3. 教学组织
同样,可以在给出案例描述后先让学生思考讨论,然后引导学生分析在这个问题中司机和售票员哪些地方需要实现前趋关系,如何去定义信号量,初始值是多少。定义好信号量后,可以和学生一起分析写出解决这个问题的算法。
三、综合案例
还有一些案例,既涉及到进程互斥问题,又涉及到进程的前趋关系,就需要定义多个信号量来分别实现,如嗜睡的理发师问题、体现写者优先的读者-写者问题等。实际上,对于这样的综合问题,只需要把上述两种方法结合起来即可。解题时,关键在于分析出问题中有哪些临界资源或哪些进程之间具有前趋关系。分清这一点,就可以为临界资源或前趋关系定义信号量了。一般情况下,实现进程互斥时,定义的信号量初始值为1,而实现前趋关系时,信号量的初始值为0。
在研究性学习中运用教学案例,可以让学生体会在特殊中蕴含的一般性理论,所以,在设计教学案例时,还要注意案例本身的表征方式难易程度[5]。
参考文献:
[1] 石敏力.案例教学理论研究综述[J].才智,2012(5):310.
[2] 汤小丹,梁红兵,哲凤屏,等.计算机操作系统[M].西安:西安电子科技大学出版社,2014:47-57.
[3] 魏葵.充分发挥案例教学在应用型人才培养中的作用[J].物流教育,2011(2):191-192.
[4] 刘彩霞,孙杰. 案例教学对大学生问题意识的培养[J].边疆经济文化,2011(3):153-154.
[5] 蔡伟.案例教学在研究性学习中的实施策略[J].科学大众(科学教育),2012(2):36.
(www.fabiaoba.com),是一个专门从事期刊推广期刊发表、投稿辅导、发表期刊的网站。
本站提供如何投稿辅导、发表期刊,寻求论文刊登合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级论文刊登/国家级论文刊登/
CSSCI核心/医学投稿辅导/职称投稿辅导。
投稿邮箱:fabiaoba365@126.com
在线咨询:
275774677、
1003180928
在线咨询:
610071587、
1003160816
联系电话:13775259981
主管单位:国家民族事务委员会 主办单位:西北民族大学 出版地:甘肃省兰州市 国际标...
主管单位:湖北省国资委 主办单位:湖北省经济干部管理学院 出版地:湖北省武汉市 国...
主管单位:山东省教育厅 主办单位:山东省教委 国内刊号:CN 37-1025/G4 国际刊号:IS...
期刊简介: 《高等工程教育研究》是我国第一份、也是唯一一份面向工程教育研究的全国...
期刊简介: 主管单位:吉林省社会保险事业管理局 主办单位:吉林省人力资源和社会保障...
期刊简介: 《种子科技》(月刊)创刊于1983年,曾用刊名:(种子通讯)是中国种子协...
近来发现有些作者论文投稿存在大量剽窃、抄袭行为,“发表吧”对此类存在大量剽窃、抄袭的论文已经停止编辑、推荐。同时我们也提醒您,当您向“发表吧”投稿时请您一定要保证论文的原创性、唯一性,这既是对您自己负责,更是对他人的尊敬。
此类投稿的论文如果发表之后,对您今后的人生和事业将造成很大的麻烦,后果不堪设想,请您一定要慎重,三思而后行。
如因版权问题引起争议或任何其他原因,“发表吧”不承担任何法律责任,侵权法律责任概由剽窃、抄袭者本人承担。