设 为 首 页  
加 入 收 藏
联 系 我 们
新闻动态 | 政策公告 | 教指委专栏 | 地方专栏 | 学校专栏 | 校企合作 | 表格标准  
2010年国家精品课程申报系统已开通 [2010-3-16]

2010年国家精品课程相关文件发布 [2010-1-28]

2009年国家精品课程评审相关文件发布 [2009-4-22]

黔南民族师范学院计算机科学系实验室审查通过 [2009-1-1]

2008年国家精品课程评审相关文件发布 [2008-4-22]

2007年国家精品课程公示名单已经发布 !!! [2007-10-18]

技术支持电话:
025-84813211
如果您有什么意见和建议请致电:
025-84813211
发送电子邮件到:
gaojs_lgc@moe.edu.cn

 

南开大学《操作系统》课程建设的思考
 

南开大学“操作系统”课程建设的思考

 

 

 

 

 

南开大学信息技术科学学院 史广顺 韩维桓 袁晓洁/

 

“操作系统原理”是计算机专业的核心课程,由于教学内容的原理性较强、知识体系繁杂,在课程建设中存在着很多困难和障碍。本文结合作者的教学实践,对“操作系统原理”课程的建设与发展提出了一些新的观点和思路,并通过实际应用证明了教学创新的有效性。

 

一、 “操作系统原理”课程特点分析

重点高校计算机专业的“操作系统原理”课程,在教学过程中有以下特点。

1. 专业知识集成度高,原理思想讲解困难

“操作系统原理”的知识基础较多,集成了高级语言程序设计、数据结构、计算机硬件原理、接口与外设、计算机体系结构等多种不同门类的计算机专业知识,学生在知识基础不完备、缺乏系统性学习习惯的情况下,很难深刻理解操作系统的原理,只能采用死记硬背的方式进行学习,由此导致教学质量无法得到有效保证。

“操作系统原理”的核心原理又可以划分为多个层次,既有系统结构设计策略,又有核心模块的设计思想,还有不同形式的技术实现方法。在讲授过程中,很难做到条理清晰、层次分明,学生在学习过程中不能明确重点,由此导致学习效率和质量下降。

很多学生戏言“操作系统课程就是计算机专业的政治课”,其实这充分说明了深入浅出讲解“操作系统原理”的困难程度。

2. 应用环境约束性强,技术细节剖析困难

“操作系统原理”课程包含了很多重要关键的设计策略、处理机制和实现算法,在计算机科学领域的真实发展过程中,各种策略与方法的出现都受到了当时技术发展条件、应用需求趋势的约束。如果主观割裂这些背景信息,大量操作系统技术细节的讲授就变成了算法和代码的简单灌输,学生只能“知其然、不知其所以然”,既不能激发学习的主动性,也无助于提升学生的系统分析设计能力。

以最重要的内存管理策略为例,从最简单的固定分区策略到最复杂的虚拟存储策略,不同的设计策略能够满足不同的应用环境。各种嵌入式操作系统由于硬件环境有限,必然选择较为简单的内存管理机制,而PC机以及各种服务器操作系统由于注重服务性能,必然选择复杂的虚拟存储管理机制。如果不能剖析这种应用环境差别所造成的设计策略差异,那么,学生就会简单地以“好”和“坏”的标准来判断各种方法,结果导致学习精力分配失衡,走入“只懂技术却不知道如何应用”的学习误区。

3. 实践环节操作性差,动手能力培养困难

“操作系统原理”课程的上机实践一直是教学工作的老大难问题,经过对国内外知名高校的调研总结,我们发现“操作系统原理”课程的上机实践主要分为以下四种形式。

* 观察与体验

这是最简单的实践方式,学生通过观察操作系统的具体运行过程来体会操作系统原理的内涵。

* 程序仿真

这是最常见的实践方式,学生根据孤立的实践需求通过编写程序来实现某种操作系统的处理机制或算法。此种方式与程序设计课程的上机作业基本类似。

* 源码阅读

这是较流行的实践方式,选择公开、完整的操作系统源代码供学生阅读,从而了解具体技术的实现过程,这种方式并不能从本质上提升学生的动手能力。

* 系统仿真

这是最理想的实践方式,学生在一个虚拟或者真实的操作系统环境中进行动手实践,直接操作修改操作系统内核,从而达到掌握操作系统设计策略和技术方法的目的。

通过比较和分析,我们在教学工作中选择了“系统仿真”作为实践环节的建设目标,经过多年的摸索,已经初步积累了学生团队实践与系统仿真实验相互结合的经验。

以上是对“操作系统原理”课程的特点分析,这些特点在很大程度上为提高教学水平制造了种种障碍,唯有对症下药克服各种困难和障碍,才能彻底实现“操作系统原理”课程建设的目标,帮助学生建立扎实的专业知识体系并提升学生的系统分析与动手创新的能力。

 

二、 合纵连横——知识体系划分与案例剖析

“操作系统原理”的教学内容,存在着“纵”“横”两条主要线索。

“纵向线索”主要指设计思想、处理机制、系统结构的时间发展顺序。以内存管理为例,从早期的固定分区,逐步发展到后来的可变分区,以及现代操作系统的虚拟存储管理,以时间为轴可清晰地了解操作系统设计思想的发展变化过程。

“横向线索”主要指具体技术方法、不同环境下的实现差异。以进程管理为例,Linux操作系统使用5种状态、Windows操作系统使用7种状态,而一些简单的嵌入式操作系统只有3种甚至2种状态。不同的应用目标和环境条件约束着操作系统的设计与实现。

采用“纵看历史、横看世界”的教学思路,既能够帮助学生了解操作系统原理思想以及技术方法的发展历程,从而对未来发展趋势有更准确的把握,同时又能够在不同案例的对比剖析中形象直观地诠释技术方法的差别和设计策略的选择,从而提升学生分析并解决现实问题的能力。“合纵连横”是我们在多年教学过程中逐步摸索出来的经验。

在教学实施过程中,我们将知识体系划分与案例剖析相互结合,使得学生既能够明确所学内容在知识体系中的层次,同时,又能够对技术方法细节有更为深入的了解。

操作系统的基本核心原理以及主要的教学内容可以划分为以下三个层次。

* 第一层次:思想与策略

该层次的内容包括操作系统设计的问题提出与定义、问题解决思路的选择、操作系统体系结构的规划、不同操作系统模块之间的关系和相互作用等。

在讲授过程中,通过对操作系统设计的思想和策略进行分析解释,有助于学生能够准确地抓住重点,同时培养学生的系统分析能力、问题关联能力、根据现实环境选择解决策略的能力。

* 第二层次:方法与机制

操作系统的体系结构非常复杂,很多问题的解决不能靠局部处理和某个具体的算法,而是必须建立完整的处理机制。很多教材采用条块分割的方法介绍教学内容,孤立的知识点之间并未有效地关联。

我们在教学实践中特别注重贯穿式的讲解,对重要的方法和机制在不同的教学内容中反复多次讲解分析,这样既能够为“思想与策略”的解读提供充分论据,同时,又能够帮助学生培养系统级的分析思维,从而提高专业教学的质量。

* 第三层次:技术与实现

操作系统原理中包含大量的算法、优化方法,单纯讲解算法不但枯燥,也无法体现设计者的思想内涵,在“思想与策略”、“方法与机制”的指导下讲解具体技术实现过程,能够有效地克服这一问题。

在讲解技术与实现的过程中,我们充分借助各种真实操作系统案例进行剖析,学生不仅直观地了解了技术实现的过程,同时又强化了对操作系统设计策略、关键方法机制的理解,最终帮助学生建立完整的知识体系。

1描述了在讲解进程通信(IPC)问题时我们使用的知识体系划分方法,表1描述了在讲解内存管理时我们选用的案例剖析内容。

以上事例简要介绍了我们在教学实践中采取的教学思路和案例教学方法,经过近几年来的摸索和积累,我们所使用的教学案例越来越丰富,学生也逐渐养成了自觉建立知识体系的良好习惯。

除了对操作系统基本原理的知识体系进行详细的划分与拆解,我们还根据学生的先导课程学习情况,在讲解原理和剖析案例时,有意识地将“操作系统原理”与其他专业课程的知识进行关联,从而帮助学生开拓专业视野,培养系统性的学习和思维习惯。操作系统是介于计算机底层硬件和上层应用程序之间的“资源管理层”,它既要保持与硬件设备的兼容,同时又要提供丰富的系统底层支持。在教学工作中,适当地介绍或总结计算机硬件原理、接口与外设、计算机网络基础、高级应用程序设计等知识,既能够增加教学过程的趣味性,又有助于对操作系统核心原理的解释。

采取本文描述的教学思路,虽然使得教师备课工作量大大增加,课堂讲授的难度大大提高,却极大地激发了学生的学习热情,把“灌输式教学”改变为“启发式教学”和“案例式教学”,学生的主动思考能力、系统分析能力、动手实践能力均得到了显著的提高。

 

三、 团队实践——教学互动的动手能力培养

在本文第一部分已经提到,“操作系统原理”课程的上机实践环节非常重要又难于实施,我们在教学过程中配合教学计划的制定采用了如下方式组织上机实践。

* 伴随原理讲授过程的上机实践内容

在原理讲授过程中,我们建立了系统仿真级的上机实践环境,上机实践的题目设计遵循“系统改良与优化”的思路,学生必须在一个完整真实的操作系统环境中实现具体的处理方法,并学习编写测试案例进行完整测试调试的能力。

* 独立开设的软件综合实践课程

除了“操作系统原理”课程之外,南开大学信息学院还针对计算机相关专业的学生专门开设了“软件综合实验”课程,在该门课程中,我们将操作系统、编译原理、数据库、网络等重要的软件基础课程相互结合,为学生提供丰富的实验题目。

与操作系统相关的综合实验要求学生在团队模式下完成一个小型的操作系统研发工作,学生将体验搭建操作系统框架、实现处理方法与机制的完整流程。

采用以上两种方式,我们的操作系统教学实践环节得以充实,真实的实践题目又驱动学生主动地阅读源代码、学习并掌握团队协作、文档编写、调试测试等重要的专业技能。

团队协作进行上机实践的优点在于以下几个方面。

* 允许学生扬长避短的选择团队角色

在组织实践团队的过程中,我们不要求所有同学都必须编写程序,而是要求每一个团队的角色分配必须合理,有些学生并不擅长编程调试工作,但是擅长分析设计或测试等工作,团队实践为学生发挥自身特长提供了有效的空间。

* 培养专业必备的软件工程技能和职业素养

当前严峻的就业形式要求本科教学必须注重学生的专业技能培养,在团队实践的过程中,不仅让学生理解并应用了操作系统核心原理,还有效地培养了他们的团队协作精神、让他们真实体验了软件项目的研发流程,为学生今后的职业规划与长远发展奠定了重要基础。

在过去三年中,我们先后选择MinixNachos等平台作为系统仿真实践的环境,并编写了一系列实践指南与辅导讲义,学生通过实践环节,不仅更加深刻地理解并掌握了操作系统核心原理,最重要的是将专业基础课程的知识与动手相互结合,激发了学生的专业学习热情,有效地提高了他们的专业技能。

四、 能力与素质——考试模式的改革

由于采取了较为新颖的教学模式与实践方式,对学生能力与素质的考核制度就必须相应地进行调整以保证教学创新的效果。我们试行了强调“能力与素质”的多元化考核制度,得到了学生的广泛支持与认可。表2描述了我们采用的考核制度。

在以上考核制度中,“小论文”并不是硬性要求的考核内容,只供有兴趣有能力的学生选择,考察标准也非常严格。以上考核制度的满分为110分,最终的成绩统计依然采用传统的百分制。

采用弹性的考核制度有以下优点:

* 降低期末考试压力,提倡持续稳定的学习作风

应试教育的弊端在大学校园里随处可见,平时不注重学习,考前临阵磨枪是令人头疼又无法解决的问题,采用弹性考核制度使得“应试学习”没有了生存的空间。只要平时学习的过程持续稳定,学生在期末考试时的压力就非常小,学习的过程也变得轻松。

* 建立多元化考核体系,发现并培养学生的素质与能力

不同学生有着不同的特长,传统的“一刀切式”的考核方式无助于提高学生的创造力,也不能培养学生的综合素质。在弹性的考核制度中,学生可以有目的地分配学习精力,不同的素质和能力都能够得到体现和认可。

我们采用“弹性考核制度”已有三年的时间,学生普遍反应良好。很多学生认为,虽然平时学习的压力很大,但是学习的目标更加清晰了,期末考试也不会太紧张。

本文简要介绍了我们建设“操作系统原理”课程的一些想法和思路。目前,我们正在探索如何实现计算机专业核心课程的纵向贯穿,将不同学期、不同方向的课程内容进行有机的组织,从而在本质上提高专业教育的水平!

古人说,“师者,传道授业解惑也”,在“操作系统原理”的课程建设中,“传道”是价值,“授业”是目标,“解惑”是手段。我们将在教学创新与改革的道路上坚定地走下去,为弘扬科学、启迪智慧、培养人才作出我们应有的贡献!

 

 

 

 

2 多元化考核制度描述

考核内容

课堂点名

课后作业

上机实践

 

期末考试

小论文(附加分)

 

考核方式

随堂作业,现场提交

当堂布置,课后完成

团队协作,限期完成

 

闭卷考核

编写操作系统相关小论文,不限题目

 

分值比例

3次,共10

3次,共10

4次,共40

 

1次,共40

1次,         10

 

考核目的

避免枯燥的出勤管理难题,小考试作为点名手段

以书面作业形式体现原理学习水平

要求提供文档、代码、测试数据,体现学生的协作与动手能力

对教学内容的综合考核

培养学生的论文写作能力,附加分又可作为额外激励激发学习热情
     
中国教育部高教司 版权所有