操作系统课程实验中的五重奏哲学.pdf
《操作系统课程实验中的五重奏哲学.pdf》由会员分享,可在线阅读,更多相关《操作系统课程实验中的五重奏哲学.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、文章编号:1 6 7 2 5 9 1 3(2 0 0 9)2 0 0 1 0 9 0 4p u t e rE d u c a t i o n操作系统课程实验中的五重奏哲学邹恒明(上海交通大学软件学院计算机系,上海2 0 0 2 4 0)镧斓摘要:作为计算机专业的核心课程,操作系统的教学效果一直不甚理想。造成此种状况的原因很多,本文针对其中的一个环节操作系统的课程实验进行讨论。在分析当前课程实验中存在的问题后,本文提出将操作系统实验分为了解操作系统、使用操作系统、操作系统编程、操作系统改进、操作系统设计五个层次进行设计。这五个层次上的实验可以根据学校不同和学生素质与能力不同或单独或组合使用,形成
2、一种高低搭配、错落有致的操作系统实验的五重奏。关键词:操作系统;实验设计;五重奏哲学中图分类号:G 6 4 2文献标识码:B1引言2当前操作系统实验设计面临的问题作为计算机专业的一门核心课程,操作系统的教学效果一直不甚理想。通过对相关学生的调查发现,绝大多数学生对操作系统的理解存在错位和误区,概念上模糊,对操作系统的各种机制缺乏逻辑性的理解。就以内核态和用户态为例,学生对如下几个问题的理解存在相当大的疑惑:驱动内核态和用户态的根本力量是什么?这两种态势在实现上的区别是什么?什么样的功能需要在内核态或用户态进行?程序如何从一个态势切换到另一个态势?这种切换隐含着什么样的重大意义?显然,操作系统本
3、身的复杂性是导致教学效果不佳的一个原因;另外,操作系统教学机制上存在的诸多问题,如教学方法老旧、教材选择偏差、讲课方式枯燥等,也是另一个原因这些问题我已在操作系统之哲学原理(计算机教育2 0 0 9 年第1 7 期)一文中进行了讨论。本文要讨论的是另一个对操作系统教学有着重大影响的因素:课程实验设计,因为操作系统课程实验上存在的缺陷与当前令人沮丧的教学效果有着直接的关系。由于操作系统的实验性质很强,不亲自动手做与操作系统有关的实验,对操作系统的了解就势必流于肤浅,因此操作系统课程通常都伴有实验。但我们通过多年的教学实践与调查发现,操作系统的实验设计存在诸多问题,大部分上过操作系统课程的学生确实
4、做过操作系统实验,但已经忘记实验的具体过程,也不理解这些实验的背后动机,以至于学生做完实验后对操作系统的理解并没有得到多大的提升,或提升的程度相当有限。虽然不同的学校在操作系统实验设计上有自己的特点,但由于操作系统的复杂性和外来性(即操作系统终究是一个由外国人发明和完善的东西),各个学校在课程实验设计上也存在着一些共同的缺陷。根据我们的调查,这些共同点缺陷包括目标模糊、缺乏层次、生搬照用和没有趣味。2 1目标模糊设计实验的时候并没有考虑到学生的培养目标是什么。是培养会使用操作系统的人,还是会进行底层编程的人,还是将来开发设计操作系统的人?对于不同的目标,操作系统实验设计就应该有所不同。如果不考
5、虑这个因素,实验设计的时候就没有针对性,学生就会觉得实验对他们的未来事业没有帮助或帮助有限。当然,也许我们现在并不知道到底应该培养哪种人才,也许有的学生会去设计开发操作系统,也许有的学生以后一辈子也不会与操作系统打交道,也许有的学生只是使用操作系统而已。即使如此,一个学校总还是应该有自己的定位的。按照这种定位,就可以制定一个大致的实验方案。2 2 缺乏层次操作系统实验的设计没有层次感,基本上所有的实验都是针对操作系统的某部分功能实现进行的,如进程管理、内存管理、文件管理等。这些实验都是对一个模拟操作系统或实验室操作系统的内核进行修改,形式单一,这种单调的实验设计对操作系统的整体把握并无太大用处
6、。例如,即使做了修改进程调度或页面更换算法的置换实作者简介:邹恒明(19 6 5-),男,湖南衡阳人,副教授,博士,研究方向:高可靠软件基准模型、安全自备份数据存储系统、信息攻防战和信息盾技术。万方数据膀黔一一蒜面瓦磊瑁蟹幽一一磺碉镛验,学生还是不明白操作系统是如何具体地服务于用户程序的。这个问题和前面一个问题是互相影响的:由于目标模糊,不能准确定位学生的实验需要,导致实验设计单调;而实验设计单调,又反过来进一步模糊我们的培养目标。2。3 生搬照用很多学校照搬其他人现成的实验作为本校的操作系统课程实验。如果照搬得当,利用他人的现有成果当然能节省时间和精力,但问题是目前的照搬存在很多问题:照搬的
7、实验与本校对学生的培养目标不吻合;没有完全理解照搬实验的精髓,不能清晰地阐述给学生;构造的实验环境不能完全适应所需的实验,导致实验失败。另外,照搬的实验很多使用实验室操作系统内核,如M i n i x 和N a c h o s。虽然这些实验室操作系统内核确实可以用来展示操作系统的工作原理,但它们与商用操作系统的差别巨大。有些原理在实验室操作系统上可行,在商用操作系统上却行不通。这样,即使学生了解了这些实验室操作系统内核,到了工作单位面对商业操作系统时,仍然是一筹莫展。2 4 没有趣味众所周知,人在做自己感兴趣的事情时,积极性会明显高于自己没有兴趣的事情,效果也会好很多,而现在的操作系统实验设计
8、却往往缺乏趣味性。大部分实验无非是修改这个,置换那个,实现某一微小操作系统功能等。这些东西对于本来就对计算机和操作系统很执着的人来说,可能并不乏味,但对于很多人来说,修改或微调一个进程调度算法并不是一件激动人心的事情。3 对改进操作系统实验设计的思考根据以上的分析,要改变现有的实验课程缺陷,就需要首先明白我们培养学生的目标是什么。明确目标后,才能知道学生对操作系统实验的需求是什么,在此需求基础上,就可以有针对性地制定操作系统实验方案,以适应不同素质和不同能力的学生。例如,我们在进行课程实验设计的时候应该问一下,我们的教学目标是培养操作系统设计师吗?还是培养能够使用操作系统底层服务的软件工程师?
9、还是培养能够熟练安装使用操作系统的技术操作员?我们认为,操作系统课程并不一定需要进行操作系统功能实现的实验。认为所有操作系统课程都需要进行同样程度、类似功能的实验,其实是长久以来形成的一个误区。很多学生将来并不会在操作系统领域工作,甚至不会在软件领域工作,让这些人做那些进程实现、内存管理实现或者文件系统实现等实验,似乎没有什么必要。对于这些学生,即使他们做了复杂的操作系统实验,也不会记得很久,甚至实验完了还是没有搞清楚操作系统是怎么回事。因此,在设计实验方案时,必须心中想着不同学生的需求,从多个层面上设计不同的实验,形成高低错落有致、难易搭配有方的一套组合实验,并能够根据具体情况动态。调整实验
10、的实施方案,以适应学校的培养目标,同时兼顾到部分同学或高或低的需求。基于这些考虑,我们的实验设计就必须具有丰富的层次,而设计出的实验也就会目标明确,层次丰富,也不会有生搬照用的各种缺陷。此外,我们还应该力求在实验设计中引入趣味性,将操作系统底层实验与用户层面的应用连接起来,形成由实际需求驱动的操作系统实验设计,从而提升学生做实验的兴趣。4 操作系统实验设计中的五重奏哲学前面说过,实验设计必须与教学目标联系起来。如果我们的目标只是普及操作系统知识,则无需进行操作系统实验或只进行简单的操作系统壳的使用实验即可。但如果学习操作系统的目的是为了将来设计、改进或精湛地使用操作系统,则需进行较为复杂的操作
11、系统实验。根据目的的不同,我们推荐将操作系统实验分为图1 所示的五个层次:内核j,;J 1 抄联5 操作系精鲻十i4。操作系统改进;3。操傺系统犏撵i2。嫠翔掇作蓑统;l。了解撰作黍统t 渐啦痿低雅坡图1操作系统实验设计中的五重奏哲学每一层次针对一种培养目标,每个层次都要求学生在熟悉下面一个层次实验的基础上,进行新的针对该层次的实验。五个层次上的实验可以根据学校不同、学生素质与能力不同而单独或组合使用。例如,对于一般的职业学校,只要进行第1 和第2 层实验即可;对于大部分的普通大学,则进行第1、第2、第3 层的实验;重点大学则进行1 4层的实验。对于少数素质高、能力强的学生,可以实施全部5 个
12、层次的实验。这种高低搭配、错落有致的实验层次如同不同的“音乐声部”,一起合成一首质感丰富的“交响乐”。这就是本文的操作系统课程实验设计的五重奏哲学。4 1了解操作系统层次这是学习操作系统的最低层次,也称为扫盲层次,目的是为了对操作系统的概念、实体有点概念。对这个层次的学生来说,操作系统实验就是启动一个操作系统,然后对操作系统提供的用户界面进行一些操作。这一层次的实验全部在操作系统壳的上面进行。4 2 使用操作系统层次这是学习操作系统的第二层次,目的是为了能够更好地使用操作系统。在操作系统出现问题时,能够简单判断万方数据谨舞墨豳旦里型!堕塑卅镧镧出现问题的原因,并找出对策。对这个层次的学生来说,
13、设计的操作系统实验以使用为主:即让学生通过各种现有或老师自编的操作系统探索工具来窥探操作系统运行时的内部状态及其在系统外层的表现。这种工具在U n i x、L i n u x 和W i n d o w s 上都有很多。例如,对于W i n d O W S 操作系统来说,其窥探工具包括P r o c e s sE x p l o r e r、P e r f o r m a n c eM o n i t o r、F i l eM o n i t o r 等五六十种工具。这一层次的实验通常跨越操作系统的壳(有些在壳的上面,有些在壳的下面)。4 3 操作系统编程层次这是学习操作系统的第三个层次,比使用
14、操作系统的层次高了一个境界。这个层次的学习是为了能够在程序设计或软件开发中利用操作系统提供的系统服务来达到系统程序设计的目标。对于该层次的学生来说,设计的操作系统实验应当以对系统调用的使用为主,通过操作系统提供的编程界面来编写一些工具软件。L i n u x、U n i x、W i n d O W S都有大量的系统调用可供我们进行系统编程。例如,我们可以要求学生通过对W i nA P I 的使用来编写4 2 节里面提到的某个工具软件,如F i l eM o n i t o r。这一层次的实验完全在操作系统的壳下面进行,但尚未进入到内核里面。4 4 操作系统改进层次这是学习操作系统的第四个层次,
15、也是一个较高的层次,从操作系统的外围进入到了内核。该层次学生以进入工业界维护和改进操作系统或学术界进行操作系统研究为己任。对于该层次学生来说,设计的操作系统实验应当以对操作系统本身的修改为主,对一些实验室操作系统如M i n i x、N a c h o s 等进行修改,以改善或置换某种具体的功能:如设计一个调度方案来置换M i l l i x 里面的调度算法,或者为N a c h o s 补充一个管程机制等。如果有条件,建议在商用操作系统上进行内核修改。例如,使用微软提供的W R K 就可以进行很多有趣的W i n d o w s 内核修改实验。4 5 操作系统设计层次这是学习操作系统的最高层
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程 实验 中的 五重奏 哲学
限制150内