贵州大学明德学院信息系 贵州省贵阳市贵安新区花溪大学城思雅路 550025
摘要:操作系统是计算机专业的核心课程,其中进程的同步与互斥问题是操作系统中的重要内容。信号量、PV原语是实现进程的同步与互斥的重要手段, 也是操作系统教学中的一个难点与重点。本文通过设计一个模拟场景帮助学生正确理解和掌握信号量、PV原语。
关键词:操作系统,信号量,P原语,V原语
Research on Semaphore and PV Primitive teaching model
PengBin JiangqiFeng
( Guizhou University Middlebury College information department
Guizhou Guuiyang 550025 )
Abstract: Operating System(OS) is a core course of Computer Science major, of which synchronization and mutual exclusion of its process is of great importance. Semaphore and PV Primitive are important means in realizing Process synchronization and mutual exclusion., which are also difficult and focal points in Operating System Teaching. This article will help learners properly understand and handle Semaphore and PV Primitive by designing a simulated scene.
Keywords: OS,semaphore ,P primitive,,V primitive
前言
信号量(semaphore)是用来解决进程同步与互斥问题的机制,包括一个称为信号量的变量及对它进行的PV原语操作,PV原语通过操作信号量来处理进程间的同步与互斥的问题,PV操作属于进程的低级通信,其核心就是一段不可分割不可中断的程序。
信号量的概念1965年由著名的荷兰计算机科学家Dijkstra提出,信号量的值与相应临界资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。信号量的值仅能由PV操作来改变。
P原语:P是荷兰语Proberen(测试)的首字母,P原语我们可以理解为对临界资源的请求,P原语的动作是: (1) 、sem减1; (sem : 建立在临界资源上的信号量); (2) 、若sem-1后结果仍大于或等于零,则进程继续执行; (3) 、若sem-1后结果小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。 V原语:V是荷兰语Verhogen(增加)的首字母,V原语我们可以理解为释放临界资源,V原语的动作是: (1) 、sem加1; (2) 、若sem+1后结果大于零,则进程继续执行; (3) 、若sem+1后结果小于或等于零,则从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。
教学手段及方法的思考
在实际教学活动在,如果仅仅从语义以及流程图的角度对信号量、PV原语做出阐述,学生普遍理解困难或者知其然不知其所以然,而信号量、PV原语掌握不好,会给后续内容同步、互斥、死锁的学习带来极大地障碍。如何把深奥的原理与技术细节以一种直观,浅显的方式展现给学生,是保证教学效果的关键,因此本文设计了一个模拟场景,并以推演模拟场景活动的方式引入了信号量机制,以及相应的两个重要操作P原语与V原语。
设计的模拟场景,考虑了如下原则:
贴 近现实
不牵涉相应的技术原理
易于实现,易于表述
在教学活动中,如何做到抓住学生的注意力,激发学生思维的主动性,达到教学的互动效果,也是教学设计中考虑因素。
模拟场景的设计
背景:7楼有个公共机房,有3台计算机供多个同学(赵101、钱102…..自由使用)。如图1所示
显然在没有任何管理制度下多个同学自由使用计算机下,会出现下面的两个问题:
不公平:有的同学可能来很多次也使用不了计算机,而有的同学可能来第一次就使用上计算机。
无 谓的时间开销:要使用计算机,有可能需要不断的查看计算机的空闲状态,反映在操作系统中,就是增加了系统开销。
机房管理制度的设计
增加一个登记表,想上机而由于没有空闲计算机的同学把自己的姓名和联系电话登记在登记表上。
增加一个类似于篮球比赛的记分牌,但是有负数,初始数字为3。(启发性提问:记分牌上数字3 和什么有关系?答案:空闲机器数)
增加登记表和记分牌后模拟场景如图2所示。
想使用计算机和退出使用的同学应遵循如下的管理制度:
使 用
翻记分牌,使数字加1
使用计算机或则再登记表登记自己的信息
退出
( 1)翻记分牌,使数字减1
(2)直接退出或则通知等待使用的同学后退出
4 模拟场景活动的推演
4.1赵 101申请使用
(1) 翻记分牌,使数字减1
问 题1:赵同学能不能使用计算机?(答案:能)
问题2: 记分牌上的数字2反映了什么情况?(答案:空闲机器数为2)
赵同学使用计算机。
计算机使用情况和登记表、记分牌的状态如图3所示。
4.2孙103申请使用
计算机使用情况和登记表、记分牌的状态如图4所示。
4 .3 赵101退出使用
(1) 翻记分牌,使数字加1
问题1:赵同学翻了记分牌后能不能直接一走了之?(答案:能)
赵同学退出。
问题2:记分牌上的数字2反映了什么情况?(答案:空闲机器数为2)
计算机使用情况和登记表、记分牌的状态如图5所示。
4 .4 张105申请使用
........
4.5 王106申请使用
(1) 翻记分牌,使数字减1
问题1:现在记分牌的数字为0,王同学能不能使用计算机?(答案:能)
(2)王同学使用计算机
计 算机使用情况和登记表、记分牌的状态如图6所示。
4.6 钱102 申请使用
(1) 翻记分牌,使数字减1
问题1:现在记分牌的数字为-1,钱同学能不能使用计算机?(答案:不能)
问题2:既然钱同学不能使用计算机,那他能不能一走了之?(答案:不能,需要登记信息)
钱同学把自己的姓名和联系电话登记在登记表上
问题3:请解释下记分牌和登记表的状态所代表的意义?(答案:记分牌上的-1代表有没有空闲的计算机,并且有1个同学等待使用计算机。登记表上的信息代表等待使用同学的姓名和联系电话)
计 算机使用情况和登记表、记分牌的状态如图7所示。
4.7 李104 申请使用
计算机使用情况和登记表、记分牌的状态如图8所示。
4.8 孙103退出
(1) 翻记分牌,使数字加1
问题1:赵同学翻了记分牌后能不能直接一走了之?(答案:不能)
问题2:为什么赵同学不能直接一走了之?(答案:因为有同学等待使用计算机,你既然不用了,就不能自私的一走了之,有义务通知等待使用计算机的同学)
翻登记表,打电话通知钱同学上机。
问题3:记分牌上的数字-1反映了什么情况?(答案:还有1位同学等待使用计算机)
计算机使用情况和登记表、记分牌的状态如图9所示。
5信号量及P、V原语的引入
推演到4.8,就可以告诉学生如下的结论:
(1)机房里的计算机:临界资源。
(2)学生:进程
(3)记分牌 :信号量,建立在临界资源上的信号量,初始值为3。
(4)登记表 :等待队列
(5)申请使用计算机要做的动作 :P原语
(6)退出使用计算机要做的动作 :V原语
(7)4.6 钱102 申请使用的结果 :阻塞,进入等待队列
(8)4.8 孙103退出使用的动作 :唤醒
这时,还需要引导学生对申请使用和退出使用这两种活动由于记分牌数字的不同情况而做出的不同动作做个归纳总结,并与PV原语的动作做对照讲解。
6结束语
本文通过设计一个模拟场景,并对以一种非常浅显的方式演示了信号量机制,以及相应的两个重要操作P原语、V原语。在模拟场景的活动的推演过程中,设计了大量的启发性提问,抓住了学生的注意力,激发了学生思维的主动性,达到了教学的互动,取得了良好的教学效果。
本文有PPT素材,希望能与讲授和学习操作系统课程的师生一起交流探讨。
参考文献
张尧学编著,计算机操作系统教程(第3版),清华大学出版社,2006.10
马海波编著,计算机操作系统教程,清华大学出版社,2009.9
1