- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于实例的进程同步教学模型的研究与构建 摘 要: 本文针对操作系统教学中的重点和难点――进程同步的学习,提出一个完整的进程同步教学模型。首先通过生活中的例子理解概念;其次通过游戏理解进程同步机制;最后通过教学模型实现进程同步的应用。通过在实际中的应用,该解决进程同步问题的思路和模型证明是有效的
关键词: 进程同步 共享资源 相互合作 教学模型 P、V操作
操作系统是计算机系统中的核心软件之一,现代计算机离不开操作系统。操作系统课程是计算机应用人员深入了解和使用计算机的必备知识,是进行系统软件开发的理论基础,也是计算机科学与技术专业的一门理论性较强的主干课程,很多学校都将该门课程作为重点课程建设。因此,提高该门课程的教学质量对于培养合格的计算机专业人员是至关重要的,如何学好操作系统是每个教师学生所关心的
长期以来,许多院校的师生都反映操作系统的课程看起来比较容易,但在学习过程中感觉枯燥、难讲、难学,尤其是进程同步方面的知识,是整个操作系统教学中的重点和难点,往往学完整个操作系统课程还是不理解、不会解决进程同步问题。很多教师在这方面都进行了探索。牛欣源[1]为进程同步问题构建了一个较通用的设计实现模型,主要分为三个方面:(1)分析独占资源的资源管理,利用信号量及其P、V操作实现资源管理;(2)利用资源管理基本方式,构建能够描述同步、互斥问题的模型;(3)应用该模型,解决经典同步案例。王文磊等[2]讨论了经典进程同步问题的研究与实现,并实现了多线程下的进程同步。笔者根据自身及整个教学团队多年的教学、教改经验,提出了一整套利用信号量机制解决进程同步问题的思路、模型,为教师提供了便利,减轻了初学者的负担
一、通过生活实例理解进程同步的概念
在解决进程同步问题之前,首先要明确一个概念:进程同步。汤小丹[3]等在《计算机操作系统(第三版)》关于进程同步的描述:进程同步的主要任务是对多个相关进程在执行次序上进行协调,以使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。从以上定义可以看出,进程同步解决的是进程间的执行次序问题,目的是使各进程能有效地共享资源和相互合作。衍伸看,进程同步问题中存在两类问题:同步和互斥。同步是由于相互合作而产生的,互斥是因为共享资源而产生的。解决了同步和互斥,就解决了进程同步问题
但是,由于操作系统本身的抽象性,学生理解同步和互斥并不是一件容易的事情,尤其是同步。将抽象变为具体,理解起来就容易得多。在实际教学中,我们会将现实生活中与学生关系密切的事件作为例子,帮助大家理解概念。对于同步,由于体现的是相互合作进程之间的关系,可以运动会中的接力比赛为例,第一棒的学生发令枪一响,按照各自的速度向前奔跑,而第二棒的学生也想早点跑,但没有接到棒之前,只能等待,只要接到棒,就可以按照自己的速度想跑多快就跑多快。在这个过程中既体现了相互合作学生(进程)之间的次序问题,又体现了进程的异步性。同步的提出就是为了解决进程执行过程中的异步性。第二棒的学生不管跑多快,他受到第一个学生的制约,即直接制约关系。同步进程的执行是有固定次序的,必须区分先后。不管什么时间执行,都必须按照既定的次序
对于互斥,是由于共享资源而产生的,相对说好理解。但为了后面进程同步的应用,也可以举个实例。例如,学生宿舍共用水龙头的问题。水龙头属于临界资源,一段时间只允许一个同学(进程)访问。但是,对水龙头的使用是没有固定次序的,只要保证一段时间内只有一个同学(进程)使用就可以。在某个同学使用的过程中,其他同学可以SLEEP(或BLOCK)(同步进制中的忙则等待),不需要不断地看别人用完了没有,等别人用完可以将他WAKEUP。而且,当一个人用完后要让给别人,不能锁起来(同步机制中的空闲让进)。使用水龙头的学生尽量快,不要等到上课了还有学生没洗(同步进制中的有限等待)。如果一个同学在洗的过程中被人叫走,那么水龙头要让给别人。(同步机制中的让权等待)。这个例子因为非常贴近生活,学生可以在生活中注意观察、体会,以加深对互斥和进程同步的理解
通过上面的与同学关系密切的生活片段,可以让学生更深刻地理解进程同步,同时理解相关的概念。最后总结:互斥是一种特殊的同步,虽没有固定的执行次序,但一旦某个进程使用临界资源,其他进程必须等待。同步是有固定次序的
二、通过游戏理解进程同步机制
这里仍然以经典的进程同步机制―信号量机制讲起
信号量本身不难理解,我们可以将它与生活中的红绿灯(信号灯)联系起来,红灯停,绿灯行。但是,在应用信号量的过程中,许多学生还是难以理解进程同步中的停和行是怎么回事,是如何控制的。枯燥的讲解不如做游戏掌握得快。为此,我们设计了一个课堂游戏帮助大家理解信号量的应用,以体验进程执行中的“
文档评论(0)