范振钧,齐 悦
(通化师范学院 计算机学院,吉林 通化 134002)
操作系统是计算机科学与技术专业的核心专业课程,这门课程的理论性和实践性都较强,内容丰富,概念抽象,涉及面广,几乎计算机专业的所有主干课程都和操作系统有着密不可分的关系.操作系统课程的特点决定了实验教学成为该课程学习的重要环节.目前的操作系统课程实验教学内容简单,形式呆板,主要以验证、仿真为主,实验教学没有发挥应有的作用.为了更好地体现实验教学在操作系统教学中的作用,培养学生的动手实践能力,我院在操作系统课程实验教学中进行了一系列的改革,取得了较好的效果.
由于种种原因,我院以往的操作系统课程教学离教学目标的要求较远,存在以下两个方面的问题.
(1)缺乏真实的实验教学环境.在以往的操作系统实验教学中,由于受到机房管理的限制,大部分实验都在windows操作系统环境下进行,由于windows系统内核不对外公开,在实验课中只能利用windows提供的外部接口对其进行操作,实验所涉及的资源是实际不存在的,学生实验时无法深入到操作系统内部进行学习和探究,这种类型的实验只能有助于对操作系统原理的理解,学生较难体会到操作系统和硬件的交互,以及操作系统的框架和部分运行机制(如中断)的特点.实验教学没有发挥其应有的作用,直接影响到学生的学习兴趣和积极性.因此,创建一个相对真实的实验教学环境成为课程实验教学改革的关键因素.
(2)实验内容设计不合理,没有形成一个完整的实验体系.鉴于操作系统的庞大和复杂,在国内现有的教学条件下,设计出一个完善的操作系统基本不可能.缺少了一个实验的主要产品,实验课的效果必然打折扣.为了有一个好的教学效果必须在一个相对真实的实验环境中,形成一个由浅入深的完整的实验体系.在我院以往的实验教学中,由于缺乏真实的实验环境,实验内容主要是围绕教材中的几个主要算法在windows操作系统下进行模拟验证,注重的是理论知识的检验和证明,实验内容没有形成一个完整的整体,每一个实验只是支离破碎地介绍了一些操作系统局部知识,学生很难将这些知识融会贯通,很难直观地理解操作系统课程中众多抽象的概念,更谈不上把实验中学习的方法和技能应用到实际软件项目开发工作中去.因此,形成一个多层次的、完整的实验教学体系成为我院操作系统课程教学改革的当务之急.
教育教学改革的重要目标就是培养高素质的创新型人才,这也是我院操作系统课程实验教学改革的努力方向.根据这个思想,我们在实验课程的教学环境、教学内容、教学方式上进行了改革.
Linux操作系统由于源代码的开放性,使其成为操作系统教学和实验首选研究对象.但是限于机房的条件,以及机房管理和其他课程实验的需求,windows操作系统是实验室的首选操作系统,如何把操作系统课程实验环境由windows系统变成linux系统,成为困扰我院操作系统实验课教学的最大障碍.本学期,经过努力,我们通过在windows操作系统下,使用vmare虚拟机模拟linux下的实验,让学生置身于真实的操作系统中,了解linux系统的具体实现情况,理论与实际结合,提高了教学效率.
采用虚拟机进行操作系统教学,可以完成操作系统课程教学中的注册表更改等对系统有较大影响的实验,还可以完成Linux下内核编写、线程控制,存储分配等实验.采用vamre虚拟机进行实验教学的环境,可以让学生置身于真实的操作系统中,亲身感受操作系统技术的具体实现情况.即提高了操作系统课程实验教学的效率,又不影响其它课程的实验,也便于机房的管理,一举两得.比如“进程”的概念是贯穿整个课程的核心概念,进程的概念是程序在数据集上的一次“执行过程”,是个动态的、抽象的、十分难以理解的概念.而在以往windows环境下,由于windows内核不对外开放,学生无法对进程直接进行操作,造成部分学生对进程的概念缺乏感性认识,导致“进程”概念理解困难,而后续的以“进程”概念为基础的,进程之间并发执行以及进程间的通信等内容就更是无法理解了.现在通过在vmare环境下模拟进程的创建实验,学生可以自己创建并删除一个进程,在创建进程过程中可以亲身体验到进程的id,进程可以创建子进程,进程和子进程共享同一段代码和变量,进程和进程之间可以互相通信,做了这个实验后,学生就能够真正了解进程的概念和进程之间的通信.
为增强实验课的教学效果,结合操作系统课程的特点,参考国内其他院校的经验,本着面向应用,突出实践能力培养的原则,精选实验项目,对选中的实验项目进行难易搭配,提高了学生的学习兴趣和实验效果.具体做法是:从应用级、系统管理级、系统行为观察级、实现级和源码阅读级的不同层次,在Linux操作系统平台上,由浅入深地安排了五个级别的实验题目,具体内容见表1.
表1 操作系统实验分类表
应用级和系统管理级的实验主要培养学生能够熟练的使用、管理和维护linux系统,并可以在linux系统下进行简单的编程实现,为学生将来从事linux一般性的管理工作打基础.
在系统行为观察级实验里,学生可以用C语言或其他编程语言设计并编程,设身处地地观察linux系统下进程异步并发及进程通信等操作的执行结果,进一步加深了感性认识,加深了对教材中抽象概念的理解,提高了学习兴趣.
在实现级实验里,对操作系统课程里的经典算法进行编程,在linux系统环境下,模拟实现一个小型操作系统的部分功能,培养学生解决实际问题的能力.
在源码阅读级实验里,指导学生阅读现有操作系统内核的源代码,真正认识现代操作系统,理解操作系统的设计精髓,拓宽学生的视野.比如阅读进程调度程序s ch e d .h源码文件,了解linux进程调度原理,阅读msg.c,sem.c和shm.c源码文件,熟悉linux的通信机制.这个实验可以结合课程设计和毕业设计,根据学生的实际理解能力,在教师的指导下进行.
通过上述设置形成了完整的实验系列,改变了以往单一、零散的验证性实验模式.实验内容由浅入深,很好的反映了操作系统课程的基本思想,有助于对课程的众多抽象概念的理解.经过简单应用实验到综合性设计性实验,学生初步具备了管理linux系统的能力,形成了利用操作系统思想解决复杂的实际问题的能力.
实验分为选做和必做,针对不同的学生制定不同的要求,对理解能力一般的同学,要求必须完成应用级、系统管理级、系统观察级的实验,重点培养学生对linux操作系统的使用维护管理能力,为将来从事一般性的管理工作打基础.对学有余力的同学,在掌握上述实验的基础上,结合课程设计或毕业设计,在教师指导下完成实现级和源码阅读级题目的实验,主要的目的在于培养学生进行大型软件的开发设计能力.
操作系统实验教学改革,首先从改变实验环境做起,通过采用虚拟机技术构建多操作系统实验平台,即可满足操作系统实验要求,又可以利用有限的硬件资源,减轻机房负担,改变了以往缺少实际运行环境的模拟验证实验的难题,让学生置身于真实的操作系统中,可了解这些技术的具体实现情况,理论与实际结合,提高教学效率.其次精选了实验项目,形成了完整的实验体系.最后采用分层次教学,强调基础实验的同时,重视综合性设计性实验,满足了不同层次学生的需要.