李瑛达 谢双杰
摘要:“操作系统”作为一门传统的计算机课程,随着IT领域的不断进步和发展,它的教学将面临更多的新问题。本文从我校“操作系统(Linux)”的教学情况入手,结合本校学生的学习特点和教育心理学理论,对“操作系统”课程的教学环节进行了探讨。
关键词:操作系统;Linux;实例化教学
中图分类号:G642 文献标识码:B
1“操作系统”教学中存在的问题
“操作系统”是计算机专业学生的一门必修课程,大部分高校将此课程设置在大二下半学期。学生在此之前虽然已经完成“C语言程序设计”和“计算机组成原理”的课程,但首次接触“操作系统”,基本上属于丈二摸不着头脑。这主要是因为“操作系统”本身是一门博大精深的课程,而我们教学主要是传授学生关于操作系统原理方面的知识,可谓是对操作系统核心内容的高度概括。即便是遇到了一些经典的算法也基本上是属于纸上谈兵。对于这样抽象的内容,学生无法像学语言课程一样,通过编写代码后能够立竿见影的看到程序运行的结果,因此对于操作系统的学习逐渐产生了厌学情绪。传统的“操作系统”教学中能够引起他们兴趣的主要就是其中生动有趣的算法,如果我们在此能够多做一些实践教学,让学生勤动脑、多动手,甚至将自己的算法逐渐整合成一个最简单的操作系统,这种实例化的教学将会让学生体会到操作系统学习的成就感,同时有利于培养学生的创新能力。
2“操作系统”教学改革方案
2.1操作系统原理实例化
这里提出将操作系统原理实例化,其实就是拿出一个可以提供给学生的操作系统,可以让学生真正体会所有经典算法的真正的操作系统。选择一个开源的操作系统这是一个必然的趋势,而在众多的开源操作系统中,Linux是很多高校教学和实验的首选。Linux不仅可以让学生查看像PCB(进程控制块)这样的数据结构的源码程序,更可以让学生在Linux上编写出进程创建、线程并发等等只可意会不可言传的程序代码。
例如《操作系统》中第二章的内容进程管理,通常在最初阶段将学生头脑里的“程序”转化成“进程”是比较困难的,另外对于进程并发的概念总是不能真正的理解。在这里如果能够及时的引入Linux中的系统调用fork()来创建进程,并且设计出一个易于学生理解,并且有一定趣
味的例子给学生实现,那么对于刚进入操作系统学习的学生来说无疑是一个巨大的帮助。这里给出一个使用fork()调用创建进程的简单的例子。
#include
main()
{
pid_t id=0;
printf(“program is excuting… ”);
printf(“in function main… ”);
id=fork();
if(id==0)
{printf(“I am child!!! ”);}
else
{printf(“I am parent!!!”);}
}
这个例子仅仅几行代码却诠释了进程创建、进程并发、进程父子关系等多个概念。当然在这里一定要交代好fork()调用的几个重点:
(1) 子进程复制父进程的代码和数据;
(2) 子进程从fork()调用之后开始执行;
(3)fork()调用成功给子进程返回值为0,给父进程返回子进程的pid号。
通过系统调用fork()抛砖引玉,让学生自己写出一段有意义的程序。学生通过自己的思考也会提出一些有意思的问题,例如如果在子进程里再调用fork()创建进程,这些进程之间的关系又是什么。学生开始思考也就意味着他开始对这个理论感兴趣了,学生提出了新的问题说明了学生对这些概念有了深刻的理解。而我们的教学的目的和意义也就达到了。
2.2经典算法程序化
算法本事身就是相对比较深奥的程序,而这部分也恰恰是软件编程的核心。如果能够掌握这个庞大的软件——操作系统里的关键性算法,自然对学生编写程序和研究算法有着不可估量的好处。从第二章的信号量开始就已经开始涉及到了操作系统中某些关键和经典的问题。很多学生由于是第一次接触算法,很难把这些经典问题和操作系统中的某一部分代码有效的联系起来,所以抽象的算法就成了他们最难以理解和消化的“食物”了。在这里设计了一些实验内容,如表1所示:
3结束语
“操作系统”作为计算机专业的必修课程,是一门有着重要地位的核心课程。如何让实验教学配合好理论教学,让枯燥无味的原理变成趣味十足且耐人寻味的一门课程成为了改革的主要目标。将操作系统中的每一个难以理解的定义和算法实例化,搞好这个教学环节,对于提高计算机的教学质量、全面提高学生的素质有着重要的意义。“操作系统”课程教学方法的改进要遵循适应课程教学改革和专业发展的实际需要,切实贯彻该课程的教学大纲和基本要求,不断完善教学活动的各个环节。充分发挥学生的能动作用,培养学生发现问题、分析问题、解决问题的综合能力,真正培养学生在系统软件开发方面的综合能力。
参考文献:
[1] 付晓翠.《计算机操作系统》教学方法改革探悉[J]. 山东农业教育,2008(4):32-34.
[2] 孙斌,周海波. 操作系统(Linux)实验指导[M]. 大连:东软电子出版社,2008.