论文部分内容阅读
摘要:“操作系统”是计算机学科各相关专业重要的必修课程之一,对操作系统教学中存在的问题、理论和实践教学、培养自学能力展开讨论,探讨培养学生的兴趣和好奇心的几种策略,以及提高教学质量的方法。
关键词:操作系统;教学质量;兴趣引导
作者简介:侯利娟(1973-),女,河南博爱人,长沙理工大学计算机与通信工程学院,讲师。(湖南长沙410004)
基金项目:本文系长沙理工大学教改项目(项目编号:JG1003z)、长沙理工大学操作系统精品课程(课程编号:KC1108)、湖南省教育厅普通高校教学改革研究项目(湘教通[2010]243号文件第133号项目)的研究成果。
中图分类号:G642 文献标识码:A 文章编号:1007-0079(2012)14-0077-02
“操作系统”是计算机科学与技术及相关专业的核心课程之一,在计算机专业的软硬件课程中起着承上启下的作用。首次接触操作系统,学生普遍认为比较抽象,其原因有三:一是“操作系统”课程讲述的是计算机资源管理的原理和机制,其中包含了许多抽象的概念和算法,学生不仅要有很强的抽象思维能力还必须具有深厚的程序设计语言功底、扎实的数据结构基础和计算机硬件基础知识,所以大部分学生对计算机操作系统本身就存在一种畏惧情绪;二是操作系统不比其他应用软件,通过编写代码后能够立刻看到程序运行的结果,如学习VB后立即会设计一个简单的可视化程序,这样的满足感和成就感能很好激发学生的学习热情,而学了“操作系统”后要求学生设计一个系统软件是相当困难的;三是由于微软公司的图形用户界面深入人心,学生对钻进计算机系统内部有“畏惧感”和“无用论”。
作为计算机专业的毕业生,如果和别的专业的学生一样对操作系统仅仅停留在使用层次,就必然导致就业的“鸡肋”状况,所以“操作系统”这门课程恰恰是打开通向计算机领域的金钥匙。必须培养学生对该课产生较浓厚的学习兴趣,变被动学为主动学,变难学为易学,提高学生的实践能力和自学能力,达到提高操作系统课的教学质量的目标。
一、对学生学习“操作系统”课程的兴趣引导
兴趣是最好的老师,一个人一旦对某事物有了浓厚的兴趣,就会主动去求知、去探索、去实践。第一节课要引导学生对操作系统这个系统软件要有总体性的认识,让学生理解linux操作系统是用C语言和嵌入式汇编语言编写的,它是一个庞大的源程序的集合。这些源程序共同完成一个高级“管家”的功能,管理系统中的处理机、存储器、设备、文件这四大资源。但是一般用户是看不懂源程序的,所以操作系统还要提供给用户一个良好的接口使得用户方便使用这个系统,这就是命令接口、图形用户接口和系统调用。
要想使学生深入到操作系统内部,理解操作系统是一个高级“管家”,管理系统中的处理机、存储器、设备、文件这四大资源,就要引导学生把在图形用户界面下的点击操作和操作系统底层的资源管理功能结合起来。比如用户要把C盘下的一个“a.doc”文件复制到H盘上,用户在图形界面下所做的事情就是“点击鼠标复制和粘贴”,但在计算机内部操作系统要先把文件a.doc复制到内存缓冲区,然后在H盘上找到存放文件的存储空间,再把内存缓冲区的内容复制到H盘上,这个步骤涉及设备管理、文件管理、缓冲区管理。[1]而这些管理都要通过调用相应的程序的来实现的,这些程序的集合就是“操作系统”的内核程序,内核程序在后台默默无闻地做了许多工作,但是仅仅有内核程序一般用户不会使用这个操作系统,所以要在内核程序之上开发一些应用程序,如文字处理软件office,浏览器软件IE,聊天软件qq等,这样一般用户都可以方便使用操作系统了。下层的内核代码和上层的应用软件结合起来就是现在使用方便的操作系统。[1]
接下来可以鼓励学生思考操作系统如何把用户的鼠标点击操作,转换成调用管理系统资源的程序,从而慢慢深入到操作系统内部的内核代码,了解系统的“内脏”,进一步开发具有特殊功能的操作系统。
二、结合生活实际的理论教学
“操作系统”课程有不少抽象概念和理论,学生理解起来比较困难,但如果教师在讲解时能用生活中的实例来解释操作系统课程中的现象与实现方法,就能给学生留下深刻的印象。
1.“进程”是操作系统中最基本、最重要的概念之一
学生初次接触“进程”这一概念,觉得它很枯燥,难以理解。可以把“进程”理解为音乐的一次播放过程,同一首音乐在昨天和今天播放应称为两个不同的进程。
操作系统的并发性可以用同时听歌、上网、聊天的实例来讲解,当一个人在计算机上同时做这三件事情的时候,由于计算机的CPU只有一个,所以计算机的CPU其实是轮流(串行)执行程序的,但如果把执行程序的时间片划分的很小,如10ms,那么在1s钟内,CPU会把听歌、上网、聊天每个程序都轮流执行3次,这个轮换间隔人是感觉不出来的,人的感觉就是“同时”、“并行”。当CPU轮流执行程序的时候,必然会涉及上一个程序的现场的保留和下一个程序的现场的恢复,所以必须要有相应的数据结构记录下各个程序现场的信息,这就是PCB,也就是Linux内核的数据结构task_struct;接着可以引导学生分析task_struct的每个分量的作用,引导学生对操作系统的“心脏”感兴趣。
2.在讲解P、V操作时,可以用学生到教室里听课为例来讲解
信号量S的值比喻成当前教室的座位数,当S<0时,|S|比喻成等待进入此教室听课的学生个数。P操作比喻成学生要进入教室上课(申请座位),V操作比喻成学生中途离开(释放座位)。
3.在计算机中引进缓冲技术主要是解决在系统某些位置上信息的到达率与离去率不匹配的问题
缓冲的讲解可以用水坝的例子,上游(设备)的水小(速度慢),下游(CPU)需要比较多的水灌溉农田(速度快),此时可以建立一个水坝(缓冲),把上游的水拦截下来,等到有足够多的水的时候,才开闸放水灌溉农田(供CPU用)。
4.在文件系统目录的讲解时可以用比喻的方法
把文件系统的目录比喻为一本书的目录,硬盘中的文件比喻成书的章节,用户新建和删除文件类似书的章节内容的增加和删减,相应的目录也应该增加和删减,以便于“按名存取”。文件的基于符号链的共享在Windows下就是快捷方式,在Linux下就是软链接。理解了软链接,就容易理解硬链接(索引节点的共享)了。
运用这一技巧,可以使学生加深对概念的理解,激发学生的学习兴趣,教学质量将会有很大提高。
三、培养实践能力
“操作系统”是一门理论与实践并重的课程,在教学实践中,必须将理论教学与实践教学相结合,通过必要的实验,让学生在“做中学”,“学中做”,使得所学理论知识在实验中得到验证和应用,获得必要的感性认识,增强学习兴趣,提高学习效果。由于操作系统是一个大型的系统软件,要求刚刚学习完操作系统基本理论的学生在有限的时间内,设计一个即使是小规模的具有相对完整功能的操作系统几乎是行不通的,即使是单独设计一个模块也不太可能。因此,必须要从搭建实验平台、设计合理的实验内容出发构建合理的实践体系。课程组自2009年起就开始规划和设计分层次内容和系列实验,确立责任教师,2010立项为省级教研教改项目,2011年立项为校精品课程,通过几年来坚持不懈地教学改革和教学研究,对学生实践能力培养更有效。
1.搭建平台
Linux源自Unix,源代码公开,学习阅读它的代码对于理解和掌握现代操作系统的设计思想、实现技术有很大的帮助。它对硬件要求低,可以安装在PC机上,也可以使用虚拟机或仿真软件,维护也很方便,特别适合学校实验机房。Linux同时又是一种可移植性很强的操作系统,在服务器和嵌入式系统方面,Linux可以作为Web服务器、Ftp服务器、邮件服务器、路由器、交换机等众多设备的支撑平台。市场对掌握Linux技术的人才有大量的需求。
用开源的Linux操作系统和VMware虚拟机作为实践平台,并通过在虚拟机上配置桥接网络,在不改变用户计算机大多采用Windows系统的前提下,通过提供一个Linux服务器,构建了一个基于校园网的、开放的操作系统教学实践环境。[2,3]初学者通过虚拟环境熟悉系统后,就可以自己实践通过划分分区安装双操作系统了。
2.合理设计实验内容
由于在不同专业都开设了操作系统课,考虑到学生的知识和经验背景,设计了多个实验项目,实验项目的安排从简到难,从依靠指导到自主设计,为有能力的同学提供更多的学习空间。[3]实验内容包括三部分:基础部分、中级部分和高级部分。
在学习操作系统课之前,大部分的学生使用的都是Windows操作系统,基础部分实验的目的是要求学生熟练使用Linux操作系统。包括掌握Linux的安装,Linux的基本命令,Linux下各种服务器的配置以及Linux下的C语言的编程和批处理程序的编程方法等。
熟练使用Linux后,就可以利用Linux的开放源代码的特点,把操作系统原理的理论和Linux的具体实践结合起来设计中级部分的实验,包括掌握Linux源代码的目录结构、进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块各个模块的功能、阅读和理解进程数据结构task_struct、Linux的进程调度函数schedule等内核案例源码、分析和研究Linux的进程调度算法和策略,评价Linux的调度策略并提出改进意见,在分析阅读源代码基础上修改调度算法。从而可以用同样的方法分析内核其他模块的源代码,培养学生分析和研究问题的能力。
高级部分实验的目的是培养学生修改Linux内核的能力,包括Linux内核编译,添加系统调用,增加可动态加载模块,驱动程序设计等。
从2009和2010年开设实验教学效果看,学生普遍反映较好,能由浅入深、循序渐进地开展实验,并能根据自身的能力选择不同难度的实验。通过实践,学生能更加深入地巩固操作系统的概念和原理,同时又提高了自己的动手能力和实践能力。从就业的角度看,仅仅掌握了基础部分知识的同学可以从事系统管理员的职业,掌握了基础部分和中级部分知识的同学可以从事应用程序员的职业,而掌握三部分的同学可以从事系统程序员的职业,每个同学都可以给自己定位,根据自己的实际情况着重培养某种实践技能,以满足任职的需要。[4]
四、培养自学能力
培养学生的自学能力和良好学习方法,比传授一般性知识内容更重要。随着社会的发展,人类知识的总量在不断增加。在知识激增、竞争加剧、科学技术日新月异的今天,要适应不断发展变化的新生活,唯一的途径就是自学。
通过课堂上讨论式的习题讲解、近三年考研题目的讲解培养学生总结重要知识点的能力,课下安排大量的多种类型的理论题和实训题目使学生进一步掌握巩固所学知识点;若有疑问可以通过建立的多媒体网站或者网络自己查找答案;还可以让学生参加创新项目和科技立项进一步提高学生的自学能力,开阔视野。目前,通过“操作系统”课程的理论教学和实验项目,很多同学有兴趣使用Windows外的其他操作系统,有的用了一年的时间自学且熟练掌握了Linux系统下的QT程序的开发,有的开发了Linux下的输入法程序,有的实现了小的嵌入式系统……同学们都找到了自己感兴趣的方向。
五、结束语
通过上述教学方法,学生学习本课的积极性显著提高,表现在上课出勤率高、课堂的学习氛围浓烈、认真思考、生动活泼。不仅学生能轻松愉快地学好这门功课,同时教师在和学生的交流讨论中掌握学生的理解欠缺,近一步改进教学方法,更好地提高教学效果。
参考文献:
[1]胡一之.调动学生积极性,提高“操作系统”课的教学质量[J].计算机教育,2009,(14):92-93.
[2]张新有,祁玉,杨燕.基于Linux的“操作系统”课程网络实验环境设计[J].计算机教育,2008,(10):36-38.
[3]李萍.Linux操作系统实验教学探讨与实践[J].计算机教育,2008,(8).
[4]侯利娟.以专业为导向的“操作系统”梯度式实践教学[J].中国电力教育,2010,(31):118-119.
(责任编辑:宋秀丽)
关键词:操作系统;教学质量;兴趣引导
作者简介:侯利娟(1973-),女,河南博爱人,长沙理工大学计算机与通信工程学院,讲师。(湖南长沙410004)
基金项目:本文系长沙理工大学教改项目(项目编号:JG1003z)、长沙理工大学操作系统精品课程(课程编号:KC1108)、湖南省教育厅普通高校教学改革研究项目(湘教通[2010]243号文件第133号项目)的研究成果。
中图分类号:G642 文献标识码:A 文章编号:1007-0079(2012)14-0077-02
“操作系统”是计算机科学与技术及相关专业的核心课程之一,在计算机专业的软硬件课程中起着承上启下的作用。首次接触操作系统,学生普遍认为比较抽象,其原因有三:一是“操作系统”课程讲述的是计算机资源管理的原理和机制,其中包含了许多抽象的概念和算法,学生不仅要有很强的抽象思维能力还必须具有深厚的程序设计语言功底、扎实的数据结构基础和计算机硬件基础知识,所以大部分学生对计算机操作系统本身就存在一种畏惧情绪;二是操作系统不比其他应用软件,通过编写代码后能够立刻看到程序运行的结果,如学习VB后立即会设计一个简单的可视化程序,这样的满足感和成就感能很好激发学生的学习热情,而学了“操作系统”后要求学生设计一个系统软件是相当困难的;三是由于微软公司的图形用户界面深入人心,学生对钻进计算机系统内部有“畏惧感”和“无用论”。
作为计算机专业的毕业生,如果和别的专业的学生一样对操作系统仅仅停留在使用层次,就必然导致就业的“鸡肋”状况,所以“操作系统”这门课程恰恰是打开通向计算机领域的金钥匙。必须培养学生对该课产生较浓厚的学习兴趣,变被动学为主动学,变难学为易学,提高学生的实践能力和自学能力,达到提高操作系统课的教学质量的目标。
一、对学生学习“操作系统”课程的兴趣引导
兴趣是最好的老师,一个人一旦对某事物有了浓厚的兴趣,就会主动去求知、去探索、去实践。第一节课要引导学生对操作系统这个系统软件要有总体性的认识,让学生理解linux操作系统是用C语言和嵌入式汇编语言编写的,它是一个庞大的源程序的集合。这些源程序共同完成一个高级“管家”的功能,管理系统中的处理机、存储器、设备、文件这四大资源。但是一般用户是看不懂源程序的,所以操作系统还要提供给用户一个良好的接口使得用户方便使用这个系统,这就是命令接口、图形用户接口和系统调用。
要想使学生深入到操作系统内部,理解操作系统是一个高级“管家”,管理系统中的处理机、存储器、设备、文件这四大资源,就要引导学生把在图形用户界面下的点击操作和操作系统底层的资源管理功能结合起来。比如用户要把C盘下的一个“a.doc”文件复制到H盘上,用户在图形界面下所做的事情就是“点击鼠标复制和粘贴”,但在计算机内部操作系统要先把文件a.doc复制到内存缓冲区,然后在H盘上找到存放文件的存储空间,再把内存缓冲区的内容复制到H盘上,这个步骤涉及设备管理、文件管理、缓冲区管理。[1]而这些管理都要通过调用相应的程序的来实现的,这些程序的集合就是“操作系统”的内核程序,内核程序在后台默默无闻地做了许多工作,但是仅仅有内核程序一般用户不会使用这个操作系统,所以要在内核程序之上开发一些应用程序,如文字处理软件office,浏览器软件IE,聊天软件qq等,这样一般用户都可以方便使用操作系统了。下层的内核代码和上层的应用软件结合起来就是现在使用方便的操作系统。[1]
接下来可以鼓励学生思考操作系统如何把用户的鼠标点击操作,转换成调用管理系统资源的程序,从而慢慢深入到操作系统内部的内核代码,了解系统的“内脏”,进一步开发具有特殊功能的操作系统。
二、结合生活实际的理论教学
“操作系统”课程有不少抽象概念和理论,学生理解起来比较困难,但如果教师在讲解时能用生活中的实例来解释操作系统课程中的现象与实现方法,就能给学生留下深刻的印象。
1.“进程”是操作系统中最基本、最重要的概念之一
学生初次接触“进程”这一概念,觉得它很枯燥,难以理解。可以把“进程”理解为音乐的一次播放过程,同一首音乐在昨天和今天播放应称为两个不同的进程。
操作系统的并发性可以用同时听歌、上网、聊天的实例来讲解,当一个人在计算机上同时做这三件事情的时候,由于计算机的CPU只有一个,所以计算机的CPU其实是轮流(串行)执行程序的,但如果把执行程序的时间片划分的很小,如10ms,那么在1s钟内,CPU会把听歌、上网、聊天每个程序都轮流执行3次,这个轮换间隔人是感觉不出来的,人的感觉就是“同时”、“并行”。当CPU轮流执行程序的时候,必然会涉及上一个程序的现场的保留和下一个程序的现场的恢复,所以必须要有相应的数据结构记录下各个程序现场的信息,这就是PCB,也就是Linux内核的数据结构task_struct;接着可以引导学生分析task_struct的每个分量的作用,引导学生对操作系统的“心脏”感兴趣。
2.在讲解P、V操作时,可以用学生到教室里听课为例来讲解
信号量S的值比喻成当前教室的座位数,当S<0时,|S|比喻成等待进入此教室听课的学生个数。P操作比喻成学生要进入教室上课(申请座位),V操作比喻成学生中途离开(释放座位)。
3.在计算机中引进缓冲技术主要是解决在系统某些位置上信息的到达率与离去率不匹配的问题
缓冲的讲解可以用水坝的例子,上游(设备)的水小(速度慢),下游(CPU)需要比较多的水灌溉农田(速度快),此时可以建立一个水坝(缓冲),把上游的水拦截下来,等到有足够多的水的时候,才开闸放水灌溉农田(供CPU用)。
4.在文件系统目录的讲解时可以用比喻的方法
把文件系统的目录比喻为一本书的目录,硬盘中的文件比喻成书的章节,用户新建和删除文件类似书的章节内容的增加和删减,相应的目录也应该增加和删减,以便于“按名存取”。文件的基于符号链的共享在Windows下就是快捷方式,在Linux下就是软链接。理解了软链接,就容易理解硬链接(索引节点的共享)了。
运用这一技巧,可以使学生加深对概念的理解,激发学生的学习兴趣,教学质量将会有很大提高。
三、培养实践能力
“操作系统”是一门理论与实践并重的课程,在教学实践中,必须将理论教学与实践教学相结合,通过必要的实验,让学生在“做中学”,“学中做”,使得所学理论知识在实验中得到验证和应用,获得必要的感性认识,增强学习兴趣,提高学习效果。由于操作系统是一个大型的系统软件,要求刚刚学习完操作系统基本理论的学生在有限的时间内,设计一个即使是小规模的具有相对完整功能的操作系统几乎是行不通的,即使是单独设计一个模块也不太可能。因此,必须要从搭建实验平台、设计合理的实验内容出发构建合理的实践体系。课程组自2009年起就开始规划和设计分层次内容和系列实验,确立责任教师,2010立项为省级教研教改项目,2011年立项为校精品课程,通过几年来坚持不懈地教学改革和教学研究,对学生实践能力培养更有效。
1.搭建平台
Linux源自Unix,源代码公开,学习阅读它的代码对于理解和掌握现代操作系统的设计思想、实现技术有很大的帮助。它对硬件要求低,可以安装在PC机上,也可以使用虚拟机或仿真软件,维护也很方便,特别适合学校实验机房。Linux同时又是一种可移植性很强的操作系统,在服务器和嵌入式系统方面,Linux可以作为Web服务器、Ftp服务器、邮件服务器、路由器、交换机等众多设备的支撑平台。市场对掌握Linux技术的人才有大量的需求。
用开源的Linux操作系统和VMware虚拟机作为实践平台,并通过在虚拟机上配置桥接网络,在不改变用户计算机大多采用Windows系统的前提下,通过提供一个Linux服务器,构建了一个基于校园网的、开放的操作系统教学实践环境。[2,3]初学者通过虚拟环境熟悉系统后,就可以自己实践通过划分分区安装双操作系统了。
2.合理设计实验内容
由于在不同专业都开设了操作系统课,考虑到学生的知识和经验背景,设计了多个实验项目,实验项目的安排从简到难,从依靠指导到自主设计,为有能力的同学提供更多的学习空间。[3]实验内容包括三部分:基础部分、中级部分和高级部分。
在学习操作系统课之前,大部分的学生使用的都是Windows操作系统,基础部分实验的目的是要求学生熟练使用Linux操作系统。包括掌握Linux的安装,Linux的基本命令,Linux下各种服务器的配置以及Linux下的C语言的编程和批处理程序的编程方法等。
熟练使用Linux后,就可以利用Linux的开放源代码的特点,把操作系统原理的理论和Linux的具体实践结合起来设计中级部分的实验,包括掌握Linux源代码的目录结构、进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块各个模块的功能、阅读和理解进程数据结构task_struct、Linux的进程调度函数schedule等内核案例源码、分析和研究Linux的进程调度算法和策略,评价Linux的调度策略并提出改进意见,在分析阅读源代码基础上修改调度算法。从而可以用同样的方法分析内核其他模块的源代码,培养学生分析和研究问题的能力。
高级部分实验的目的是培养学生修改Linux内核的能力,包括Linux内核编译,添加系统调用,增加可动态加载模块,驱动程序设计等。
从2009和2010年开设实验教学效果看,学生普遍反映较好,能由浅入深、循序渐进地开展实验,并能根据自身的能力选择不同难度的实验。通过实践,学生能更加深入地巩固操作系统的概念和原理,同时又提高了自己的动手能力和实践能力。从就业的角度看,仅仅掌握了基础部分知识的同学可以从事系统管理员的职业,掌握了基础部分和中级部分知识的同学可以从事应用程序员的职业,而掌握三部分的同学可以从事系统程序员的职业,每个同学都可以给自己定位,根据自己的实际情况着重培养某种实践技能,以满足任职的需要。[4]
四、培养自学能力
培养学生的自学能力和良好学习方法,比传授一般性知识内容更重要。随着社会的发展,人类知识的总量在不断增加。在知识激增、竞争加剧、科学技术日新月异的今天,要适应不断发展变化的新生活,唯一的途径就是自学。
通过课堂上讨论式的习题讲解、近三年考研题目的讲解培养学生总结重要知识点的能力,课下安排大量的多种类型的理论题和实训题目使学生进一步掌握巩固所学知识点;若有疑问可以通过建立的多媒体网站或者网络自己查找答案;还可以让学生参加创新项目和科技立项进一步提高学生的自学能力,开阔视野。目前,通过“操作系统”课程的理论教学和实验项目,很多同学有兴趣使用Windows外的其他操作系统,有的用了一年的时间自学且熟练掌握了Linux系统下的QT程序的开发,有的开发了Linux下的输入法程序,有的实现了小的嵌入式系统……同学们都找到了自己感兴趣的方向。
五、结束语
通过上述教学方法,学生学习本课的积极性显著提高,表现在上课出勤率高、课堂的学习氛围浓烈、认真思考、生动活泼。不仅学生能轻松愉快地学好这门功课,同时教师在和学生的交流讨论中掌握学生的理解欠缺,近一步改进教学方法,更好地提高教学效果。
参考文献:
[1]胡一之.调动学生积极性,提高“操作系统”课的教学质量[J].计算机教育,2009,(14):92-93.
[2]张新有,祁玉,杨燕.基于Linux的“操作系统”课程网络实验环境设计[J].计算机教育,2008,(10):36-38.
[3]李萍.Linux操作系统实验教学探讨与实践[J].计算机教育,2008,(8).
[4]侯利娟.以专业为导向的“操作系统”梯度式实践教学[J].中国电力教育,2010,(31):118-119.
(责任编辑:宋秀丽)