启发式教学在进程同步中的应用

2019-04-25 08:51王春梅滨州学院信息工程学院
数码世界 2019年3期
关键词:接力赛进程跑步

王春梅 滨州学院信息工程学院

引言

进程同步问题既是操作系统课程的重点也是其难点,进程同步是由进程之间的前趋关系造成的直接制约关系。在进程同步问题中,既包含进程的并发性、进程间前趋关系,还包含如何利用记录型信号量解决进程间的制约关系,多个概念交织在一起,往往令学生望而生畏,理解和掌握的程度较低,打击了学生的学习积极性。

启发式教学,是20世纪60年代中期创建的教学方法,根据课程教学目标、知识内容逻辑和学生知识水平,采用多种方式,以启发学生的思维为核心,通过调动学生的学习主动性和积极性,从而促进学生知识理解、能力培养和身心发展的一种教学方法。

1 进程同步的基本概念及解决机制

(1)进程同步

某些应用程序,为了完成某任务而建立了两个或多个进程。这些进程将为完成同一项任务而相互合作。进程间的直接制约关系就是源于它们之间的相互合作。有向无循环图(DAG,Directed Acyclic Graph)可以更好的描述进程之间的执行次序。图中的结点用来表示一个进程,结点间的有向边表示两个进程之间的前趋关系。一般表示为PiPj,表示Pj开始执行之前Pi必须完成。

(2)记录型信号量机制

进程同步机制的主要任务是对多个相关进程在执行次序上进行协调,使并发执行的诸进程之间能按照一定的规则共享系统资源,并能很好地相互合作,从而使程序的执行具有可再现性。

记录型信号量的定义及相应的wait(S)和signal(S)操作如下:

在该信号量中,S.value的初值表示系统中某类资源数量,list链表用来指向由于申请资源不成功而阻塞的进程。由以上wait(S)代码可知,wait操作是指进程申请一个资源,并且当申请资源不成功时,调用block原语主动阻塞,并插入到S.list中,并且list中阻塞的进程数为|S.value|。signal操作代表进程释放一个资源,若释放一个资源后S.value=<0,则表示在list中仍有等待资源的进程,所以应该调用wakeup原语,唤醒S.list中的第一个进程,所以记录型号量机制遵循空闲让进、忙则等待、有限等待和让权等待四条准则,是比较完善的同步机制。

2 进程同步的启发式教学过程

2.1 现实中的教学实例

进程同步的例子广泛存在于现实生活中,例如将盖一栋教学楼分为①设计图纸,②打地基,③盖楼,④装修四个环节,那么它们之间就存在①②③④的前趋关系,还有就是大家比较熟悉的4*100米接力赛如果派出A、B、C、D四名同学分别跑第一棒、第二棒、第三棒和第四棒,那么这四名同学之间就存在ABCD的前趋关系。

2.2 启发式教学思路

关于进程同步问题,课程教学目标是掌握利用记录型信号量机制解决进程的同步问题。选取大家都非常熟悉的4*100米接力赛为例,提出思考问题;然后引导学生对该问题进行思考以及寻找解决问题的方案。之后启发学生将现实中的问题解决方案应用与进程同步问题;最后进行反馈和总结。

2.3 启发式教学过程

首先提出问题一:在4*100米接力赛中,班内派出四名同学A、B、C、D分别跑第一棒、第二棒、第三棒及第四棒,那么四名同学在跑步的过程中能不能停下来?

大多数同学都会想到,同学在跑步过程中不会主动停下来,但是如果摔倒的话,那么他们是必须要停下来的。

问题二:如果是A同学在跑步过程中摔倒停了下来,如果保证B不抢跑?

大多数同学都会想到,B同学没有拿到接力棒就跑,那么就会被判为成绩无效。以此类推,对于C、D同学也是需要拿到接力棒才可以起跑。

问题三:在4*100米接力赛中,接力棒起到了什么作用?

通过思考,大多数同学会想到,接力棒是为了保证四名同学按照4*100米接力赛规则完成比赛,防止出现抢跑等现象,也就是只有A跑完第一棒,B才可以起跑,以此类推。

以上利用一个用于表示资源数目的整型变量S以及wait(S)和signal(S)操作称为整型信号量机制,很明显,整型信号量机制比锁机制更有效。

问题四:4*100米接力赛和进程同步问题的对应关系是什么?

引导思考:四名同学要执行跑步这个任务,所以对应于操作系统中的进程;四名同学在跑步过程中摔倒停下来,对应于进程的并发性。只有A同学跑完第一棒,将接力棒传递给B,B才可以起跑,所以A、B同学之间关系对应于进程之间的前趋关系AB。以此类推,四名同学之间存在ABCD的前趋关系。

问题五:怎样利用记录型信号量来实现接力棒的作用,也就是既要保证进程的并发性(同学在跑步过程中摔倒停下来)还要保证进程之间的前趋关系(既是A停下来,B也不能跑,除非A跑完第一棒)。

引导思考:接力棒可以看做是同学起跑的信号或者条件,对于B同学来说,只有A跑完第一棒,B同学起跑的条件才成立。所以在A、B同学之间可以设置一个信号量SAB表示A跑完第一棒,B起跑的条件,所以SAB初值为0,只有A跑完第一棒,才能将该条件释放,对应的B在起跑前要申请该条件,如果成立才能起跑。

3 结束语

通过启发式教学,同学们对进程同步问题的掌握明显提高,学习操作系统的信心也进一步增强,有效的提高了课程教学质量,也培养了学生发现问题、思考问题以及解决问题的思维和能力。

猜你喜欢
接力赛进程跑步
一场别开生面的接力赛
让我成长的一场接力赛
做到七点跑步不伤膝
热天跑步防中暑
债券市场对外开放的进程与展望
改革开放进程中的国际收支统计
跑步的时候我们在想些什么
3D机械昆虫游戏接力赛
社会进程中的新闻学探寻
八戒跑步等4则