基于Windows内核的“操作系统”课程实验平台设计与建设

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Windows内核的“操作系统”课程实验平台设计与建设

摘要:在“操作系统”课程的教学中,实验教学设计的好坏直接影响到学生对操作系统本身的理解与吸收。其中实验平台的设计与建设至关重要。本文提出了一套基于Windows内核的“操作系统”课程实验平台,它架构在大众最为熟悉的Windows操作系统基础上,可供学生对操作系统内核进行扩展、修改、并获得客观评价。此举极大的降低了学习门槛,提高了学生的学习兴趣和主动性。在实际应用中取得了较好的效果。

关键词:操作系统教学;实验平台;WRK;Windows内核

1引言

“操作系统”是计算机软件中最重要,最核心的部分,也是高校计算机高等教育的一门重要基础课程。操作系统中有众多的理论、模型与思想,如果不通过实验教学,对学生的讲述仅仅停留在课堂陈述,又无法取得很好的效果,因此“操作系统”是一门实践性很强的课程。

目前国内高校“操作系统”实验课程的开设方法有如下几种:(1)验证型:即通过模拟环境、实际操作或案例剖析的形式,对操作系统中的常见算法、技术等进行验证。这种方法可以有效的化操作系统中的抽象原理为形象的实现,但是学生做的内容往往千篇一律,其主动性很难调动。(2)设计型:即通过模块替换、功能扩展或独立开发的形式,要求学生设计实现一些操作系统中的功能。这种方法可以提高学生的自主能动性,但是其工作量与难度很难把握,如果太简单起不到锻炼的作用,太难又可能导致大部分学生无法完成而影响教学效果。如何使操作系统实验既能很好的辅助课程教学,又能提高学生的实践水平,是所有讲授操作系统的教师不得不面对的问题。

我们认为,搭建强有力的实验平台对解决此问题有重要意义。一个好的操作系统实验平台需要最大程度上的降低课程实验的难度,屏蔽操作系统实现的复杂细节,抓住知识要点,调动学生的积极性,同时又可以对学生的工作作出合理的评价。目前的操作系统实验平台多以专门用于教学的操作系统为主,例如Nachos、Minix等,学生对其并不熟悉,需要二次学习。在同济大学软件学院的“操作系统”课程实验中,我们尝试采用大众熟知的Windows操作系统作为实验平台载体。

以往基于Windows的操作系统实验最大的困难在于其封闭性。由于无法得到Windows操作系统的源代码,公众无法深入了解、分析和修改Windows操作系统内核,因此实验仅能停留在用户态层面。微软公司于2008年初针对全球学术界发布Windows Research Kernel(简称WRK),它是一套可修改、可编译、可调试的Windows内核源代码。借助于WRK,基于Windows操作系统内核的实验平台搭建已成为可能。

2实验平台介绍

2.1基本思想

搭建操作系统实验平台,其基本思想有如下几点:第一,真实的操作系统往往为了追求效率或功能往往有很多复杂的实现细节,而这些细节恰恰不利于学生的深入学习。通过实验平台,可以让学生无需直接面对这些细节问题,而可以更加关注于重要的算法、思想和原理。第二,操作系统中有不少晦涩的原理和抽象的模型。通过实验平台,可以设计一些创新型实验,以增强课程的趣味性,从而进一步调动学生的积极性和主动性。第三,对于学生实验的工作量和工作成果,实验平台需要以某种具体标准给出合理的评价。第四,对于学生创新过程中遇到的具体问题,需要提供一个及时沟通和交流的平台。不能让学生因为某个技术困难而导致整个实验无法继续进行。

鉴于上述思路,基于该实验平台,教师和学生应该在实验中做到如下工作,如图1所示:

首先,教师自己需要对WRK做深入的了解。摸清WRK中的基本算法、数据结构等。然后对WRK的代码作出一定修改,最主要是要把一些核心算法与数据结构的接口定义出来。

其次,教师需要撰写实验指导书,指导学生如何基于教师定义的接口对WRK 进行扩展、以及预期的效果等,并且开发成果评测软件。还要对学生进行WRK基础知识的讲解。

接下来,学生可以在基于WRK的实验平台上进行实验,包括基本算法替换、扩展功能实现等。如果遇到问题,可以及时与老师、或其它同学沟通。

最后,实验平台可以根据学生的完成情况,给出合理的评价。

2.2实验平台架构

为了实现上述思想,我们基于WRK搭建和设计了如下实验平台,如图2所示。

该平台是基于Virtual PC虚拟机的。在其之上运行WRK内核。在实验开始前,教师对WRK的内核做必要修改。对同步原语、内存分配算法、调度算法等都做了修改。修改后的WRK内核虽然可以运行,但是都是采用最基本的算法,效率非常低。需要学生对其进行进一步改进。

然后,系统给WRK增加了一系列新的系统调用,该系统调用主要用来导出系

统的一些核心评估、评测数据。在其之上,我们还编写了自制的评估软件。该评估软件利用新增的系统调用,对经同学修改后的WRK内核进行功能、性能等各方面的评估,而该评估指标,是学生实验成绩的重要组成部分。

2.3实验内容举例

围绕该实验平台,我们开发了一系列实验。详细信息可参考“操作系统实验”精品课程网站(http://sse.tongji. edu. cn/oswrk/)。下面仅列举一个例子作为介绍。

实验内容:操作系统同步死锁检测。死锁是同步中经常发生的问题,目前的Windows操作系统中不会对死锁进行检测。修改WRK源代码的WaitForSingleObject( )函数,在给同步对象上锁之前增加死锁检测功能,如果该加锁操作会导致死锁,则函数返回特定的错误值。

要求:(1) 重新构建的Windows内核必须通过评估软件的测试。(2) 提交修改后的增量源代码。

为完成此实验,教师首先需要开发实验评估软件。在该软件中,故意实现多种情况的等待死锁。在学生修改后的内核上运行该软件后,其可以评估修改的代码是否可以检测死锁,并分析死锁检测的时间消耗,从而给出学生作业较为客观评估。

3首次实践经验总结

在2008年,我们组成了以15名本科生(含一名西班牙瓦伦西亚大学国际交换学生)作为该实验的试点对象。首批展开试点。

在实践过程中,我们有如下经验总结:

第一,教师一定要把握好实验的“度”。即布置的任务最好能够有明确的范围限制。如果实验目标过大,则可能导致工作量太大或问题太多而无法完成。

第二,由于WRK是比较新的东西,资料相对较少,很有可能会遇到大家都无法解决的问题。这个时候沟通、共同攻关就显得比较重要。在试点中,我们建立了一个所有组员都可以编辑的维基用来做沟通,如图3所示。一方面大家可以快速看到目前存在的问题。另一方面,也有利于探索的积累,起到了良好的作用。

第三,一定要调动学生的积极性,但是不能希望一蹴而就。实验需要由浅入深的展开,前期实验从观察性实验入手,一方面让学生了解WRK的架构,另一方面让学生感觉入手并不难。然后可以渐渐增加动手、创新实验的比重。当然,要保证绝大多数实验是创新型实验,否则无法真正锻炼到学生的动手能力和创新意识。

相关文档
最新文档