APP下载

操作系统实验教学的研究与实践

2010-01-18赵艳红段汉根

关键词:进程计算机实验

赵艳红,沈 峰,段汉根

(安徽科技学院理学院,安徽凤阳233100)

1 引 言

操作系统作为计算机学科中一门承前启后的专业基础课程,在计算机专业课程体系中扮演着重要角色.操作系统的内容涉及理论、算法、技术、实现和应用,知识体系繁杂,概念和原理抽象,是一门实践性较强的课程.目前,国内操作系统课程设置多偏重于理论学习,对课程实践重视不够.学生普遍反映,不实际动手参与操作系统内核的开发,只能掌握一些抽象概念,不能深刻理解操作系统的核心,更不能解决实际问题.中国与国外教学工作的差距体现在实践教学环节上,重视实验与实践教育是各国高等教育的发展潮流[1].安徽科技学院获批为省级示范应用型本科高校立项建设单位,结合本院应用型本科计算机专业学生的实际情况,完善实验与实践,增强实验课与实践课的教学效果,培养具有高质量、高素质、高实践能力和高创新能力的人才成为一种必然.安徽科技学院将计算机操作系统作为重点建设课程,计算机操作系统课程分成两门课:一门讲授“操作系统”原理,安排72学时讲授理论,12学时进行基础实验;一门“操作系统综合实验”,安排20学时专门进行操作系统课程设计.本文将介绍操作系统课程设计中,实验平台的选择、虚拟技术的应用、实验平台的构架及实验内容的设计[2,3].

2 实验平台

2.1 实验平台的选择

____Linux是一套______类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上.Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播.另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益[4].

个人计算机的不断普及开源代码的快速发展极大改善了操作系统课程教学的资源环境,为实验课程改革提供了机遇.大部分院校采用的都是Linux操作系统设计平台.由于Linux操作系统是为实际应用开发的,主要的操作系统功能已经很完善,结构庞大且复杂,没有专门为学生练习而设计的项目,所以学生在实践时会遇到很多困难,实践效果也不理想.我们借鉴了美国马里兰大学在操作系统实验及实践方面的方法及经验,使用由美国马理兰大学教师开发,基于X86的 GeekOS教学型类Linux操作系统.Geek OS主要用于操作系统课程设计,目的是使学生能够实际动手参与到一个操作系统的开发工作中.学生可以在Linux或Unix环境或/windows下使用Bochs PC模拟器进行开发,且其针对进程、文件系统、存储管理等操作系统核心内容分别设计了7个难度逐渐增加的项目供教师选择.出于教学目的,这个系统内核设计简单,让学生易于阅读、设计和添加代码,但它又涵盖了操作系统课程的核心内容,能够满足操作系统课程教学的需求,却又兼备实用性,它可以运行在真正的X86PC硬件平台.GeekOS由一个基本的操作系统内核作为基础,已经实现如下功能:

(1)操作系统与硬件之间的所有必备接口.

(2)系统引导、实模式到保护模式的转换、中断调用及异常处理.

(3)基于段式的内存管理.

(4)内核进程以及FIFO进程调度算法.

(5)基本的输入输出:键盘作为输入设备,显示器作为输出设备.

(6)只读文件系统PFA T:用于存放用户程序.

2.2 虚拟机 (virtual machine)技术的应用

当前,随着高校学生数量的不断增加,而资金投入有限,所以实验设备和实验场地不能及时得到扩充,实验教学资源非常紧张.采用虚拟机构建的教学、实验平台既能节省资金投入、挖掘设备潜力,又可缓解实验设备严重不足、实验管理员工作量过大等问题,为教师教学提供了极大的便利,同时也给学生进行课内外的自主学习提供了可能.

虚拟机是一个抽象的计算机,和实际的计算机一样,具有一个指令集并使用不同的存储区域.它负责执行指令,还要管理数据、内存和寄存器.通过虚拟机软件,用户可以安装操作系统、安装应用程序、访问网络资源等.虚拟机具有以下特点[5]:(1)拥有独立的虚拟硬件设备,并且这些设备及I/O端口等都受到保护,每个虚拟机都可以拥有计算机系统的所有资源.(2)系统分配给每个虚拟机的虚拟内存都采用了独立的地址空间,互相之间没有任何联系.(3)每个虚拟机都有一个VM控制块,它包括有关VM当前状态方面的信息.(4)同一台主机上可以运行多个虚拟机,每个虚拟机都可安装不同的操作系统,就如同一台独立的PC,各虚拟机与主机之间可以进行对话、共享文件和网络资源.(5)在虚拟机中,把操作系统安装在主机硬盘中虚拟出来的一个特定文件中,并不需要对物理硬盘进行分区操作,虚拟机系统与主机系统有良好的隔离性,在虚拟机上进行的操作对主机现有的硬盘分区和数据都不会造成任何破坏.(6)具有硬件无关性,在主机系统上虚拟出的硬件都是相同的,可以简单地在不同的主机之间复制后直接使用,不必考虑硬件差异,因此在实验中对虚拟机系统造成的任何损坏不会涉及到物理设备且可以得到快速修复.(7)能够设置和修改虚拟机系统的各种配置参数.因此,在虚拟机中进行软件调试,系统可能一样会崩溃,但是,崩溃的只是虚拟机上的操作系统,而不是物理计算机上的操作系统,使用虚拟机的恢复功能,就马上可以恢复.虚拟机技术为教学、实验提供了一个近似于真实的环境,完全能够满足教学实践的要求[6].

PC虚拟机有VMware、Virtual PC和Bochs三种开源软件.我们选择VMware软件来安装Linux操作系统,在Linux环境下使用Bochs虚拟机运行 GeekOS操作系统.

2.3 实验平台的构建

采用虚拟机软件构建多操作系统实验平台,方法如图1所示:

(1)主机操作系统可以根计算机硬件配置情况及需要安装Windows 2003、Window s XP或Window s Vista等,属于宿主操作系统,是虚拟机软件的运行平台.

(2)安装VMware虚拟机软件.

(3)利用VMware虚拟机软件建立如图1所示的 Windows XP、Linux和 Unix虚拟机.在 WindowsXP、Unix上配置应用服务器,可以创建其它的虚拟机,或创建更多的虚拟机,当然,实际能同时运行多少个虚拟机,主要取决于计算机的CPU和物理内存大小.在构建操作系统平台时,根据需要,我们选择Linux虚拟机作为环境.注意如下事项:

①安装方式选择:Typical.

②选择 GuestOperationSystem时,选中:Linux,对应的Version选中:Red HatLinux.

③虚拟机内存大小:128MB以上.

④网络连接方式:Bridged方式.

⑤虚拟磁盘:选择“新建”,大小设置:至少2GB.

⑥建立虚拟机完成后,CD-ROM默认值是:Auto Detect,把这个值改为Red Hat Linux安装光盘将要插入的具体盘符.

(4)在Linux虚拟机中安装Linux.打开VMware,选择刚才建立的Linux虚拟机,插入Red Hat Linux安装光盘,单击VMware工具栏中的 Power On按钮,启动Linux虚拟机进入Linux安装欢迎界面.在安装过程中注意如下事项:

①安装类型选择:定制.

②选中:Windows文件服务器.目的是安装Samba组件.

③选中:开发工具.目的是安装 GCC、NASM等.

(5)在Linux下安装Bochs.bochs使用./configure make make install命令之后直接在终端输入bochs即可启动.

(6)安装geekos-0.3.0.假设工作目录为/root/work,geekos的源文件路径/root/geekos-0.3.0,安装步骤如下:

①复制:“/root/geekos-0.3.0/scripts/start Project”文件至工作目录/root/work.

②在终端输入命令:cd/root/work

./start Projectproject0/root/geekos-0.3.0/src.

图1 虚拟机软件构建 GeekOS实验平台

3 实验设计

GeekOS作为一个教学型操作系统,设计尽可能简单,让学生易于阅读、设计和添加代码,但它涵盖了操作系统课程的核心内容,能满足操作系统课程教学的需求.围绕操作系统原理中的重要概念与方法,精心为学生设计了7个由易到难的设计项目,每个项目都对应操作系统的一大管理功能,学生每实现一个项目就相当于完成了操作系统的一个功能,如果完成全部7个项目,就实现了一个具备基本功能的实用操作系统[7][8].教师还可以根据教学实际情况和学生接受能力调整实验项目.

基于GeekOS教学操作系统的实验项目内容如下:

(1)熟悉实验环境:熟悉Linux操作系统环境,学习X Window系统的使用;学习shell及常用命令、基本的编程与调试方法,能够执行一些简单的命令,会编译、调试和执行程序.

(2)PC启动原理及 GeekOS启动程序:主要是让学生熟悉 GeekOS的编译、运行过程,了解计算机系统的启动原理.要求实现一个内核进程,功能是实现从键盘接收一个按键,并在屏幕上显示.

(3)ELF文件:主要让学生熟悉可执行链接文件 (ELF文件)的结构,并学会加载和运行可执行文件.项目要求学生熟悉ELF文件格式,并编写代码对ELF文件进行分析,并将分析结果传送给加载器.

(4)进程管理:通过设置进程控制块和编写进程创建、进程中止和进程调度程序,实现进程管理;编写通用中断分派程序和时钟中断例程,实现中断管理.

(5)调度算法编程:要求学生改进 GeekOS的调度程序,实现基于4级反馈队列的调度算法 (初始Geek OS系统仅提供了FIFO进程调度算法),并实现信号量,支持进程间通信.

(6)内存管理实验:要求学生实现分页虚存管理,实现分页虚存管理后,系统在内存不够的情况下就可以将部分页调到硬盘,以释放内存实现虚拟存储技术.

(7)文件系统:要求实现GOSFS文件系统.由于 GeekOS使用了虚拟文件系统,可以加载不同的文件系统,而系统默认加载的是PFA T只读文件系统.在这个项目中,需要实现一个多极目录的,可读写的文件系统.

4 结束语

采用GeekOS作为计算机操作系统实验平台已经三年,实践证明学生能够利用实验平台循序渐进的完成实验项目,很好地帮助学生理解计算机操作系统的原理,提高了学生对操作系统的学习兴趣,增强了编程的能力,教学效果显著提高.安徽科技学院获批为省级示范应用型本科高校立项建设单位,我们应对实验、实践课提高重视程度,积极探索更好的实验及实践课教学方法,培养具有高质量、高素质、高实践能力和高创新能力的人才.

[1] Abraham Silberschatz著,郑扣根译.操作系统概念 (第6版)[M].北京:高等教育出版社,2008:10-60

[2] 孙宝山,万振凯,许佳.网络课程在非计算机专业中的教学研究 [J].河北北方学院学报:自然科学版,2007,(06):71-73

[3] 张尧学,史美林,张高.计算机操作系统教程 [M].北京:清华大学出版社,2009:1-20

[4] (美)拉芙 (Love,R.)著,陈莉君译.Linux内核设计与实现 (第二版) [M].北京:机械工业出版社,2006:40-80

[5] 沐士光,苏亚丽,邹国忠,等.虚拟机技术在网络操作系统课程教学实践中的应用 [J].玉溪师范学院学报,2009,25(04):56-58

[6] 刘建军,郝尚富,孙佰利.用虚拟机技术构建计算机实验教学环境 [J].河北北方学院学报:自然科学版,2009,(05):77-79

[7] 黄廷辉,王宇英.计算机操作系统实践教程 [M].北京:清华大学出版社,2007:3-40

[8] 武仁杰,郭喜凤,王利青.利用多种操作系统组建网络教学环境的研究 [J].河北北方学院学报:自然科学版,2005,(02):26-28

猜你喜欢

进程计算机实验
记一次有趣的实验
计算机操作系统
基于计算机自然语言处理的机器翻译技术应用与简介
债券市场对外开放的进程与展望
做个怪怪长实验
改革开放进程中的国际收支统计
信息系统审计中计算机审计的应用
NO与NO2相互转化实验的改进
实践十号上的19项实验
Fresnel衍射的计算机模拟演示