APP下载

“操作系统”实验课程建设与教学探讨

2009-08-28叶保留费翔林葛季栋

计算机教育 2009年14期
关键词:操作系统教材建设教学实施

叶保留 费翔林 葛季栋 骆 斌

摘要:本文以实用操作系统的开源化契机,结合“操作系统”教学要求和目标,提出以“一套源码、两个角度、三个层次”为切入点的实验课程建设思路,并从教材建设、课程规划、教学实施等角度介绍了实验课程建设的关键环节。论文还以实验课程教学实施情况为案例,对实验课程教学实践成效进行了分析。

关键词:实验课程建设;教材建设;课程规划;教学实施

中图分类号:G642 文献标识码:B

1引言

1.1实验课程教学的难点分析

操作系统在计算机领域有着举足轻重的作用,它是最基础的系统软件,也是计算机系统的核心与灵魂。作为计算机学科中一门承前启后的专业基础课程,“操作系统”在计算机专业课程体系中扮演着重要角色。多年来,国内外高校均将“操作系统”列为计算机专业的核心课程之一,并不断从教学方式、课堂内容、实验环节等方面对“操作系统”教学进行探索和创新,通过多种途径提高“操作系统”课程教学质量,力求使学生真正掌握操作系统设计原理与实现技术的精髓。

作为一门理论与实践并重的专业核心课程,操作系统具有以下特点:一方面理论性强、概念抽象,难以理解;另一方面设计技巧高超、实现机制精妙、系统代码量大,难以掌握。此外,随着计算机网络及分布并行等技术的不断发展,操作系统设计与实现技术不断更新,并与多个方向交叉。因此,“操作系统”教学一方面必须不断充实内容、涵盖最新技术发展、反映技术演变趋势;另一方面还应突出内涵、深入剖析基本理论与核心技术。从而使学生真正做到融会贯通,消化吸收操作系统设计与实现精髓。

早期,因受限于计算机教学资源(如实验设备缺乏、系统代码封闭等),“操作系统”课程教学主要以课堂讲授为主,教学内容理论性过强,实验环节薄弱。实验教学的欠缺容易造成学生停留在对概念与设计原理的抽象理解,只能“知其然,而不知其所以然”,无法真正认识问题本质、掌握原理及设计内涵,不利于对学生创新能力的培养。多年来,学生也普遍认为“操作系统”课程概念晦涩、原理复杂、内容枯燥、无法激发学习兴趣。为弥补实验教学缺失,国内一些院校开始在教学中引入操作系统原型设计,试图以特定微型操作系统(如Minix)原型为基础,要求学生设计并改进该原型系统,以期强化对操作系统基本原理的理解,并培养实际应用能力。然而,这类原型系统通常功能单一、结构简单,虽有助于理解和掌握操作系统基本原理,但因设计简化且缺乏必要的应用背景,无法反映操作系统技术内涵及演变趋势,不利于培养学生的应用实践能力。

1.2实验课程建设的机遇

近年来,以Linux为代表的开源操作系统的飞速发展及其在各领域的广泛运用,在产业界产生巨大影响。一些知名IT厂商均将公布其操作系统源码作为提高软件产品核心竞争力的重要举措,并纷纷组织资深工程师撰写内核设计技术资料。如SUN公司开放OpenSolaris源代码,微软亚洲研究院也对亚太地区高校开放了部分用于教学的Windows内核源码。开源系统的发展及产业界的积极响应有效改变了操作系统教学资源缺乏的困境,为“操作系统”课程教学改革带来新契机,并引起教育界高度重视。2008年教育部启动“高等学校计算机科学与技术专业核心课程(操作系统)教学实施方案研究”项目,并交由教育部高等学校计算机科学与技术教学指导委员会和高等教育出版社组织国内知名专家,成立“操作系统”课程教学实施方案研究组,集思广益,对“操作系统”课程教学实施方案开展研究。图1给出了实施方案中关于“操作系统”实验和实验体系结构的框架,该结构以Linux、Windows等主流操作系统为实例,从实验难度上将实验课程教学分成用户层、内核初级及内核高级等三个层次;从实验类型上将实验课程教学分成使用与管理级、观察与体验级、编程与修改级、设计与实现级等四个等级,为“操作系统”实验课程设计提供参考。

我们认为,个人计算机的不断普及开源代码的快速发展极大改善了“操作系统”课程教学的资源环境,为实验课程改革提供了机遇。“操作系统”实验课程建设必须审时度势,充分利用现有平台环境和资源条件,及时调整课程体系、优化教学大纲、改变教学模式、充实教学内容,适应信息技术快速发展之需要。

2 “操作系统”实验课程建设概况

2.1实验课程建设基本思路

“操作系统”课程教学目标主要集中在“原理、技术、应用”三个层面,其中原理是了解操作系统设计内涵的基础,技术是理解操作系统实现的核心,应用是掌握操作系统技能的途径。三者相互关联、相辅相成。实验教学环节是促成三者系统融合、验证和巩固所学知识,综合运用知识的重要教学手段,也是技能训练和能力培养,包括动手能力、协作能力、分析问题解决问题能力和探索精神、创新意识的必要途径。多年来,南京大学“操作系统”课程教学小组一直将改善和提高“操作系统”实验环节的可操作性作为“操作系统”教学改革的重点,并以使学生“理性理解原理设计思想、牢固掌握技术实现机理、切实提高应用实验技能”为课程实验教学的要求和目标加以研究。

“操作系统”实验课程建设的一个基本问题是,如何引入合适的操作系统和选择恰当的实验平台。简化的原型操作系统虽“五脏俱全”,可为实验教学提供支撑,但由于缺乏实用性,不利于培养学生的探索能力及应用技能;实用操作系统虽功能强大,但模块众多、盘根错节,技术细节琐碎,直接引入将使实验教学难度增大,缺乏可操作性。近年来,我们结合开源代码发展趋势及在“操作系统”课程教学方面的体会,以“科学性、系统性、先进性、实用性”为课程建设指导思想,确立了以“一套源码、两个角度、三个层次”为切入点的操作系统实验课程建设思路(如图2示)。具体而言,选择一种典型实用操作系统(Linux)内核源码为基础,从用户层及内核层两个角度,围绕“原理、技术、应用”三个层次剖析操作系统内在机理,从以下两个角度解决“操作系统”课程教学中的现有问题,改善教学效果。

(1) 将抽象原理设计映射到具体系统实现,使学生走出对原理理解停留于“知其然,而不知其所以然”的困境,实现对基本原理从“抽象理解”过渡到“感性理解”,并最终走向“理性理解”。

(2) 建立基于“用户空间——内核空间”的实用操作系统内在机理剖析机制,使学生能够以抽象原理为指导,透过现象看本质,了解内核实现机理,真正理解和掌握实现技术,培养应用实验技能,强化实验编程能力。

基于上述设想,建立了以“原理设计思想—系统实现问题—技术实现机理—用户应用需求—应用实验技能”为主线,基于实用操作系统内核源码的实验课程教学体系,并从教材建设、课程规划、教学模式等角度对“操作系统”实验课程建设进行探索与实践。

2.2实验教材建设

作为国内最先开展操作系统研究与教学的单位之一,南京大学操作系统教材建设最早可追溯到上世纪80年代初由人民邮电出版社出版的《操作系统原理》。近30年来,不断跟踪操作系统技术发展进展,及时修订、更新教材内容,几易其版,共出版操作系统教材6本。为推动“操作系统”实验课程建设,基于上述实验课程建设思路,结合《操作系统教程》(第4版)的修订,于2009年5月出版了《Linux操作系统实验教程》。该实验教材以操作系统基本原理为基础,结合Linux 2.6内核源码,系统介绍Linux操作系统的系统结构、设计和实现的基本思路和技术,深入剖析基本原理在Linux操作系统中的实现机制。在此基础上,通过实验把操作系统基本原理与Linux实现机制联系起来,以此激发实验兴趣,培养将所学知识融会贯通和综合运用的能力,提高学生分析问题和解决问题的能力。

在实验教材建设过程中,基于以下原则精心设计教材内容。

(1) 注重总体规划的科学性与合理性、实验环节的实用性与可操作性。

(2) 实验设计紧扣基本原理与核心技术,实验内容涵盖用户空间编程与内核代码分析。

(3) 实验安排循序渐进、层层渗透,实验形式丰富多样、富有启发性。

在实验教材建设过程中,还基于以下思路定位教材角色和规划教材结构。

(1) 实验教材与原理教程的定位与衔接。两教材在角色上相辅相成,彼此呼应。实验教材涵盖了操作系统基本原理与理论,但强调从实现技术入手,注重基本原理在特定系统实现中的渗透性,试图做到原理讲授与实验环节紧密结合,使学生真正掌握操作系统原理设计与实现技术的精髓。

(2) 实验教材内部知识体系之间的衔接。实验教材内容组织基于“由外及内、层层梯进”思想,分为用户空间及内核空间两大部分。用户空间部分从对Linux API的使用入手,旨在掌握系统的组成模块和接口的使用方法,并从系统外部洞察操作系统的数据结构、内部状态和工作过程。内核部分从修改Linux内核入手,试图通过改变系统数据结构、替换原有算法、添加内核模块等,从系统内部探索其内核结构、实现机制和典型算法,达到初步具有分析、修改、设计和开发操作系统的能力。两部分内容遥相呼应,可满足不同院校在不同级别上观测、分析系统原理之需求。

2.3实验课程规划

我们虽强调理论性与实验性并重,但理论是实验的基础。因此,在具体操作过程中,将理论课程教学与实验课程教学分段实施,分设独立课程,使两者各有所重。在“操作系统”课程教学规划中,我们将两门课程分别安排在大二下学期及大三上学期开设。其中理论课程选用《操作系统教程》(第4版),以课堂教学为主,主要侧重对基本概念的讲解及原理设计基本思想及特点的分析;实验设计以观察与体验级别为主,使学生对基本概念与原理有较强的感性认识。实验课程的课堂教学以引导问题为主,侧重分析基本原理在系统实现及实际应用中的难点,激发学生对实现及应用问题的思考与关注。实验课程以《Linux操作系统实验教程》为蓝本,实验设计以对抽象原理的感性认识为基础,从对操作系统的用户空间编程入手,层层深入,逐步探索,剖析从基本原理到内核实现映射机理,从而使学生能理性理解设计原理,掌握实现技术,提高实验能力。

3 “操作系统”实验课程教学实施

3.1确定不同目标,实施分层教学

2008年下半年,我们以南京大学计算机科学与技术系及南京大学金陵学院计算机科学与技术系大三学生为授课对象,对基于Linux的“操作系统”实验课程教学进行了实践探索。针对两院系学生的生源特点及人才培养目标总体定位的不同,分别设计了相应的实验教学目标(见表1)。

3.2基于“专题聚合”的实验教学内容组织

《Linux操作系统实验教程》从用户空间及内核空间角度将教材内容分成两大部分。其中第一部分(共11章)结合操作系统基本原理,从应用角度系统介绍 Linux 操作系统核心功能设计及其应用编程接口API,具体内容包括Linux安装和编译、进程与线程、传统进程通信、System V IPC进程通信、Shell程序设计、页面替换算法、文件系统设计和实现、时钟与定时器、网络通信编程、事件驱动编程等;第二部分(共8章)从内核实现角度系统介绍Linux操作系统的实现技术,具体内容包括内核模块、中断与系统调用、同步机制、进程调度、存储管理、虚拟文件系统、proc文件系统、设备驱动程序等。

在实验教学内容组织过程中,考虑到知识体系的关联性与完整性,采用纵向整合,基于专题组织教材内容。整个教材内容共分为Linux操作系统概述、进程与线程、进程通信、时钟与定时器、Shell、存储管理、文件系统、内核模块等8个专题(如图3),专题覆盖了实验教材各章节内容。对于每个专题,均以“原理设计思想—系统实现问题—技术实现机理—用户应用需求—应用实验技能”为主线,以“抽象理解—感性认识—理性理解”为进阶途径,设计专题内容。首先简要介绍基本原理背景,并引出其在特定系统实现中的技术问题,实现从抽象原理到物理问题的映射;然后通过相应应用编程接口及系统调用从用户和内核角度观测和理解系统实现特点,加深对相关技术的感性认识;随后,结合性能观测结果、深入分析相关内核代码设计与实现机制,从而实现对原理设计的理性理解。例如,在“进程与线程”专题中,首先从进程与线程的一般概念入手,给出Linux进程与线程设计的特点;随后详细介绍创建Linux进程/线程的系统调用,并通过实例展示使用不同参数调用时的性能差异;最后根据观测结果从进程结构描述、内核管理机制等角度介绍Linux线程/进程的实现技术。

3.3 “纵观本质,横看演变”的实验课程教学思路

实验课程教学以专题为基础,并结合生源特点及人才培养目标定位的不同,因材施教,分别建立实验课程教学实施策略。在学时安排上,南京大学计算机科学与技术系采用3学时/周,其中每个单周讲授一个专题,双周安排实

金陵学院采用(3+3)学时/周,即每周安排3学时专题讲座及3小时专题实验。虽然对不同培养目标学生的实验类型定位不同,但我们兼顾学生自身发展的个性化需求,做好不同层次内容之间的衔接问题,激发感兴趣同学将实验难度及质量向深度推进。

在教学过程中,采用“纵观本质,横看演变”策略。在纵观本质上,采由表及里,逐步向纵向推进,向深度扩展。具体而言,以抽象原理为指导,分析系统实现问题,通过应用编程接口及系统调用观测系统性能效果、进而剖析实现机制,理解原理设计精髓。在横看演变方面,还对不同版本Linux内核的实现机制进行横向对比,捕获技术演变过程,加深学生对技术机理的理解,保证知识结构的先进性。如在“进程调度”专题中,将结合Linux 2.4与Linux 2.6调度策略的不同介绍内核结构的设计的差异与要点。

3.4实验课程教学成效分析

通过选取两院系学生部分作业及期末试卷题目作为考察项,对基于Linux的操作系统实验课程教学成效进行分析,表2给出了作业完成/答题情况分析结果。对考察项说明如下:在“进程与线程”专题中,实验题目是“打印Linux系统中的进程树结构”。该实验可通过使用系统调用访问进程task_struct结构或直接访问内核链表来实现,其中前者实验难度属于内核初级,后者属于内核高级;在期末考试中,程序分析题(属于内核高级)要求学生结合 Linux软中断内核代码分析其软中断处理机制,程序设计题(属于内核初级)要求学生基于TCP/IP socket网络编程技术,实现一个支持多用户并发执行的客户/服务器程序。

从分析结果来看,南京大学计算机科学与技术系学生在“内核高级”难度的观察项上的结果明显高于金陵学院学生,在“内核初级”难度的观察项上的结果差异相对较小。观察结果表明,基于Linux的“操作系统”实验课程建设已初显成效,并达到了对不同层次人才培养的实践能力要求。

4结束语

以Linux为代表的实用操作系统的开源化为操作系统实验课程建设提供了新的机遇。本文结合操作系统教学要求和目标,提出了以“一套源码、两个角度、三个层次”为切入点的实验课程建设思路,并从教材建设、课程规划、教学实施等角度具体介绍了实验课程建设的关键环节。论文还结合南京大学计算机系及金陵学院计算机系实验课程的教学情况,对基于Linux的实验课程教学实践成效进行了观察、分析。结果表明,实验课程建设已初显成效,满足了对不同层次人才操作系统实践能力培养的要求。在后续工作中,我们将结合专题内容,进一步优化实验习题的设计、完善基于Linux的操作系统实验课程教学体系。

参考文献:

[1] 操作系统课程教学实施方案研制组.高等学校计算机科学与技术专业核心课程教学实施方案(草案)[Z].2009.

[2] 史广顺,韩维桓, 袁晓洁. 南开大学“操作系统”课程建设的思考[J]. 计算机教育,2009(4):21-24.

[3] 罗宇, 张颖蓓, 叶常春. 本科操作系统课程设置及教学体会[J]. 计算机教育,2006(1):39-40.

[4] 孙钟秀,费翔林,骆斌. 操作系统教程[M]. 4版. 北京:高等教育出版社,2008.

[5] 费翔林,李敏,叶保留. Linux操作系统实验教程[M]. 北京:高等教育出版社,2009.

猜你喜欢

操作系统教材建设教学实施
智能手机操作系统的分析与比较
国产桌面操作系统中虚拟化技术应用研究
校本特色课程的教学实施与评价
小组合作探究模式在初中英语课堂教学中的实施
关于核科学技术专业英语教材建设的思考
湖北民间舞蹈课程体系的建构
任务驱动教学法在成人教育中的运用分析
中高职衔接教材建设的思考与实践
一场及时的春雨