计算机操作系统课程中的同步问题教学
2019-04-04高岩
高岩
摘 要:本文主要针对计算机操作系统课程中的同步问题教学进行探究。在实际开展教育教学过程当中,可结合教学要求,实现对编程操作代码的适当增加,帮助学生将抽象的知识实现对具体知识的转变,提升学生的理解能力。也可通过设计生产者与消费者关系同步教学代码的方式实现对教育教学质量的改善,这为计算机操作系统课程后续教学工作的顺利开展打下坚实基础。同时也可进一步改善整体教育教学质量。
关键词:操作系统;同步问题;教学
在计算机科学技术当中,操作系统原理作为核心课程存在。通过对多年教学现状进行分析后可以发现,学生在学习这门课程时普遍存在抽象以及难懂的现状,较为庞大是操作系统的明显特征,因此,在学习操作系统原理时,我们可从系统代码角度进行。现在所讲述的操作系统原理与编程操作代码学习之间相互分离,所以说深层次实践的需求得不到满足。长时间在此种状态下开展教育教学工作,会导致学生学习兴趣不断丧失。
一、教学过程中存在的问题
1.教学内容侧重理论,实践环节薄弱
操作系统课程要有好的教学效果,就要引导学生自己动手设计、实现一个具体操作系统实例。要做到这一点并不容易,这不仅要求学生在学习该课程之前就要掌握汇编语言、C语言、计算机硬件、操作系统结构等多种知识,而且还需要学生抽出大量的时间和精力放在该实验上。这样的要求学生不易做到。因此现有的教学过程往往重点偏向操作系统原理的理论教学,对学生的实践环节不是很注重。
2.教学目标与社会需求脱节
促使学生在掌握计算机操作系统的基础之上实现对计算机硬件基本原理的有效控制。是计算机操作系统课程同步教学所面对的主要问题。其中还会涉及到多种设计方法以及技术等。将这一教学目标作为主要依据,对学生自主研发操作系统软件能力的提升有重要作用。收到计算机自身行业特点的制约,只有少数公司实现对前沿技术的全部掌握,同时还会涉及到版权保护等问题。所以学生在自主开发操作系统软件中投入大量精力,并不具备现实意义。通过对市场需求进行分析后可以发现,掌握操作系统并且熟练修改以及编译器内核的人才才缺口相当大。
二、进程同步的基本概念
现阶段教师所面临的主要问题就是如何在有限的时间内实现对课程学习的完成。在讲授原理的同时,需要将每一个知识点利用可编程操作代码进行讲述,尤其是亲自上机操作,实现对结果的观察,这种可操作性是帮助学生转变知识的有效方法,甚至可以激励学生提出全新的思路。但是这种教学方法也存在一定的弊端,教师的工作量会不断提升,尤其是操作系统教材不能将可对应的代码提供给学生。
合作进程的同步通过信号量及P、V操作实现,“生产者与消费者关系”是广义同步问题的一个抽象模型。但信号量与P、V操作是低级的同步机构,用它们很难表示复杂的并发性问题,它们在并发程序中的出现,使得程序正确性证明更加困难。而且要求用户自己使用同步原语设计同步关系,这本身就不合理,一方面加重了用户的编程负担,另一方面用户对同步原语有意或无意的不正确使用都可能破坏并发系统的正确运行。管程的提出解决了这个问题,管程提供对共享资源的统一管理,能够同步进程。现在支持同步设计的程序设计语言都支持管程。在进行进程同步教学时,可以利用这种高级语言对抽象模型“生产者与消费者关系”写出进程同步的代码,并上机实践,使学生把进程同步的抽象知识变为具体可理解的知识。在选择编程语言时,本文作者选择了JAVA。
JAVA是由Sun公司开发而形成的新一代编程语言,它可以在各式各样不同机器、不同操作平台的网络环境中开发软件。它本身是一种独立编程语言,更是Internet的世界语,极大地提高了Web的交互性。继HTML(超文本标记语言)和WWW(全球信息网)之后,JAVA可称的上是Internet上第三个重要的技术发明。JAVA语言的特点:简单性、面向对象技术、分布性、安全性、体系结构中立、可移植性、解释执行、高性能、多线程、动态性。对于进程同步问题,线程是轻型进程,本文作者利用JAVA語言设计了一个线程同步例子,该例子构建一个管程实现生产者与消费者的同步。
1.进程同步
所谓进程同步就是并发进程在一些关键点上可能需要相互等待与互通消息,这样的相互制约关系称为进程同步。同步意味着两个或多个进程之间根据它们一致同意的协议进行相互作用。
2.进程同步的基本类型
在操作系统中,有各种各样进程同步,按特点不同一般可将同步问题分为两类:
(1)各进程合作完成某工作的逻辑顺序;
(2)对系统资源的共享的合作进程的同步。本文主要讲解第一类进程同步问题的解决方法。
三、信号灯的基本概念
信号灯的概念是由荷兰人Dijkstra于1968年提出的,这个时期正是操作系统形成的活跃时期。他把互斥的关键概念抽象到信号灯这个概念中。信号灯是一个被保护的变量,只有P操作、V操作和一种称为信号灯初始化操作才能访问和改变它的值。信号灯是一个确定的二元组(s,q),s是一个具有非负初值的整型变量,q是一个初始状态为空的排队站。创建信号灯时,应准确说明信号灯s的意义和初值(这个初值绝不能为负值)。每个信号灯都有一个队列,其初始状态为空。
四、用信号灯解决进程同步的方法
前趋图是一种有向无环图,可以很好地描述各进程在关键点上的同步关系。每个进程在前趋图中都跟其它进程有相互联系,有其直接前趋、直接后继。P3的直接前趋是P1和P2,P3进程必须在P1和P2进程执行完毕才能开始执行,否则转等待;P3的直接后继是P4,也就是说P4进程的直接前趋是P3进程,P4进程必须在P3进程执行完毕才能开始执行,否则转等待。
结语
我们可通过必要的手段,实现对管理线程共享资源缓冲区的构建,其中所涉及到的数据交换,主要来源于生产者与消费者,最终实现线程同步的目标。该例子完全可以满足上机运行的需求,同时实现对正确操作结果的获取。在转换抽象教学内容的同时,学生们的学习兴趣得到真正意义上的提升。抽象的教学内容也逐步实现向可操作代码的转变,最终完善教学整体质量与水平。
参考文献
[1]王九如,韩丽花,王晓洁,etal.基于改造E—R图的计算机操作系统进程同步教学研究[J].计算机教育,2015,No.248(20):64-68.
[2]张霞,谷淑化,张求明.《操作系统》课程中进程同步问题的教学方法研究——用信号灯机制解决合作进程的执行顺序类进程同步问题[J].电脑知识与技术,2015(9).