CBL-PBL模式在计算机操作系统实验教学中的实践

2019-11-30 04:55:28王军号谢以磊
计算机教育 2019年11期
关键词:线程实验教学教学模式

王军号,谢以磊

(安徽理工大学 计算机科学与工程学院,安徽 淮南 232001)

1 研究背景

计算机操作系统是计算机专业课程极为核心的课程之一,具有非常强的理论性、抽象性和综合性,是一门教师难教、学生难学的课程,而实验教学更是其难教难学的一个主要环节。操作系统实验教学的难点主要体现在:内容繁杂,涉及面广,与计算机软、硬件及用户都紧密关联;实践性强,与当前各类操作系统有着密切的联系;技术更新快。这些困难必然给操作系统实验教学带来许多问题[1]。

为了扭转这种难教难学的态势,提升实验教学效果,本文把案例式教学(case-based Learning,CBL) 和问题式学习(problem-based learning,PBL)教学模式引入操作系统实验教学中,形成基于CBL-PBL整合模式的计算机操作系统实验教学方法。

2 操作系统实验引入CBL-PBL模式教学的必要性

2.1 操作系统实验教学存在的问题

1)课程的复杂性造成学生缺乏足够的学习兴趣。

操作系统课程的理论性和综合性较强,知识涵盖多个学科,对前导课程的依赖性很大,课程内容具有一定的抽象性,不像其他应用软件,学习后会有立竿见影的效果,这在一定程度上直接影响了学生的学习兴趣和学习热情[2]。

2)实验环境有着一定的局限性。

由于国内学生习惯使用图形化的Windows操作系统界面,而应用于UNIX/Linux操作系统的编译器、调试器等工具多为命令行模式,学习这些工具的命令和参数会占用学生有限的时间和精力,学生接受起来比较困难。

3)实验内容设置不够丰富。

操作系统实验要求学生具备一定的基础知识和专业技能,能够分析系统的源码,并在此基础上尝试对部分简单代码进行修改以完成特定的功能。商业性的UNIX/Linux/Windows代码量极大,结构设计异常复杂,实验内容设置多是模拟验证型或实际验证型实验,并不适合教学,缺少合适的操作系统实例。

2.2 操作系统实验授课情况

计算机操作系统作为计算机专业的核心课程,其主要内容比较稳定,而实验教学方法却相差甚远。通过调研分析国内高校操作系统实验课程开设情况,发现一般有3种讲授方法[3]。

(1)一般原理法:以若干操作系统作为示例,详细讲解操作系统的基本原理,或通过使用应用程序模拟操作系统的行为和算法。但是根据经验,按教材和教师讲解步骤经过一番“照方抓药”实验后,大多数学生都难以得到对具体操作系统的直接经验。

(2)应用操作法:借助系统工具在实际操作系统上观测系统运行状况,理解相应的系统参数涵义。该类实验可以帮助学生理解操作系统的应用,但多侧重于对系统的操作。

(3)积木块法:让学生设计并实现一个小型的可真正在计算机上运行的操作系统。但是,受学生水平和时间的限制,通常只能偏重于操作系统设计的某些方面,如进程管理,而无法深入理解内核的工作机制。

2.3 CBL-PBL教学模式的优势

探索一种让学生在有限的时间内提高实验效果以掌握理论知识的教学模式十分必要。CBL(Case-basedLearning)教学法,是以案例为基础的讨论式教学法,PBL(ProblembasedLearning)教学法,以问题为中心旨在培养调动学生的学习积极性和自主学习习惯,将二者有机结合,通过案例式教学模式培养学生的思维能力和创新能力,通过问题式学习模式合理引导学生的学习兴趣,将理论知识与实验实践相结合,提高学生分析问题和解决问题的能力,并进一步深化在实验教学中的应用[4]。

CBL-PBL教学模式的关键是启发性问题的设计,要求既涵盖实验相关的知识重点和注意事项,又具有启发性。CBL-PBL教学模式的引入使学生带着疑问去预习实验和查阅相关资料,引导学生解剖分析一个小型操作系统的实例,通过启发性批判性思考提升自己解决问题的能力,开发学生的思维力和创造力。运用CBL-PBL教学法,能够在充分理解系统原理的同时,从实验操作中获得直接经验,有效提升学生的实践能力,以满足社会对专业人才的需求。

3 CBL-PBL模式在操作系统实验教学中的设计

3.1 构建递进式实验架构

在操作系统实验课程中,按照CBL-PBL模式的教学要求,我们制定了基础验证性实验、设计性实验和创新性实验3个层次的递进式实验架构[5],见图1。

图1 CBL-PBL 递进式实验架构

基础验证性实验能够帮助学生深入理解教材中的抽象理论和重要知识点,验证课程基本原理及关键问题,都是学生必须熟练掌握的实验内容。

设计性实验主要通过分析研究该课程的核心原理,掌握目录结构、文件类型和存取控制权限等,并能设计简单的多级文件系统。引导学生在发现问题和分析问题的过程中,理解课程的核心原理及其实现过程,是对基础验证性实验的拓展。

创新性实验主要训练学生将理论知识运用于实践过程的综合能力,以达到“构思、设计、实现”的要求。设计操作系统内核,通过虚拟机上调试并能在真实PC上运行,这是学习操作系统课程需要达到的更高要求。

应根据实验效果和教学评价,针对实验项目提出恰当的启发性问题;根据实验大纲和教学目标,结合教师的教学经验,建立科学的实验案例。这两者都是构建CBL-PBL模式实验项目的基础,它们又相辅相成,互相促进。通过设计这种递进式的实验架构,学生各方面能力都得到逐步锻炼。

3.2 搭建实验平台

学校选用了由北京英真时代科技有限公司开发的Engintime OS Lab软件产品用于操作系统的实验平台。该平台具有以下特点[6]。

OS Lab已经与CodeCode.net平台完全整合。只要用户能够连接互联网,就可以使用在CodeCode.net平台注册的账号,随时登录使用OS Lab软件,这样就彻底解决了传统硬件在时间和空间上的限制。其次,学生编写的实验源代码,可以托管在CodeCode.net提供的Git远程库中。在实验过程中,学生团队可以通过分派不同的任务以在线协作的方式共同完成一个实验目标。

2)给出了一个很好的操作系统实例。

OS Lab提供的EOS操作系统是一款专门用于教学的、可以直接运行于X86硬件平台的小型开源操作系统,融合了Windows和Linux的设计理念,提供了和Windows一致的API函数和应用程序功能,学生在深入分析和理解EOS源代码后,可以按照自己的想法对系统进行修改或添加模块,具备很大的创新空间。

3)提供了一个可视化的集成实验环境。

OS Lab提供了一个界面和操作习惯都类似于Visual Studio的可视化IDE环境,简单易学,操作方便。OS Lab使用图形化的方式显示线程运行轨迹、进程线程列表、线程控制块、进程控制块、虚拟内存、物理内存、二级页表、就绪线程队列、记录型信号量、互斥型信号量、磁盘调度等重要的操作系统数据,用户可以随时观察操作系统内部的运行情况,从而更加直观、形象地理解操作系统原理。

3.3 具体实验模块的设计

操作系统不仅管理系统软、硬件资源,同时为用户提供了良好的接口。根据操作系统主要功能,按照3.1节论述的CBL-PBL模式设计了5个主要实验模块,见图2。

图2 实验模块间的关系

1)操作系统的启动模块。

须确定的实验目的:理解操作系统的启动步骤和启动后的工作方式,跟踪调试EOS在PC机上从加电复位到成功启动的全过程,查看EOS启动后的状态和行为。通过采用Bochs单步调试BIOS程序、loader程序和软盘引导扇区程序,熟悉从系统引导到内核加载与执行再到初始化完成的启动流程,加深对操作系统启动过程的理解[7]。

护套的材质选择与环境温度、环境腐蚀和环保要求等因素有关,化工装置中常用的护套材质有PVC和HFFR等。外护套上的电缆标识,主要用压印(凸印或凹印)和油墨印刷等方式,压印适用于外径较大的电缆,且压印工艺较繁琐,易对仪表电缆外护套造成损伤。仪表电缆护套一般采用油墨印刷,可以做到标识清晰、字体耐磨,并符合相关的标准要求。电缆的护套颜色与电缆的类型有关,依据文献[16]的规定,本安回路用仪表电缆的颜色必须为浅蓝色。在文献[1-4]中,对护套的最小厚度、外护套标识等均进行了详细的规定。

教师提出的问题有:为什么EOS操作系统从软盘启动时要使用loader.bin和boot.bin两个程序?使用一个可以吗?它们各自的主要功能是什么?软盘引导扇区加载完毕后内存中有两个用户可用的区域,为什么软盘引导扇区程序选择将loader.bin加载到第一个可用区域的0x1000处呢?这样做有什么优点?这样做会限制loader.bin文件的大小吗?

2)进程的创建与同步模块。

须确定的实验目的:理解进程和程序的差别,掌握进程创建的方法,学会使用EOS API函数CreateProcess创建一个进程。理解进程是资源分配的基本单位,跟踪调试CreateProcess函数的执行流程。跟踪调试EOS的信号量工作过程,修改EOS的信号量算法以支持等待超时唤醒功能(有限等待),并使用EOS信号量编程解决经典的生产者—消费者问题,从而理解进程同步的原理。

教师提出的问题:在PsCreateProcess函数中调用了PspCreateProcessEnvironment函数后又先后调用了PspLoadProcessImage和PspCreateThread函数,学习这些函数的主要功能,可以互换这些函数调用的顺序吗?思考为什么要在ps/semaphore.c文件内的PsWaitForSemaphore和PsReleaseSemaphore函数中使用原子操作?

3)线程的调度管理模块。

须确定的实验目的:通过为线程增加挂起状态,调试线程在各种状态间的转换过程,熟悉线程的状态和转换,进一步加深对线程状态的理解。了解常用的调度算法,熟悉基于优先级的抢先式调度,为EOS添加时间片轮转调度,调试EOS的线程调度程序[8]。

教师提出的问题:当loop线程在控制台1中执行,并且在控制台2中执行suspend命令时,为什么控制台1中的loop线程处于就绪状态而不是运行状态?时间片轮转调度发现被中断线程的时间片用完,而且在就绪队列中没有与被中断线程优先级相同的就绪线程时,为什么不需要将被中断线程转入“就绪”状态?如果此时将被中断线程转入了“就绪”状态又会怎么样?

4)物理存储器与逻辑管理模块。

须确定的实验目的:查看物理存储器的使用情况,学习分配和回收物理内存的方法,掌握物理存储器的管理方式。通过查看进程逻辑地址空间的使用情况,以及练习虚拟内存的分配和回收步骤,从而掌握进程逻辑地址空间的管理方法。

教师提出的问题:如果没有回收分配的物理页,会对EOS操作系统造成什么样的影响?只把MEM_RESERVE标志使用在分配虚拟页的MmAllocateVirtualMemory函数调用中,而没有使用MEM_COMMIT标志,尝试说明这两个标志的区别。

5)文件系统管理模块。

须确定的实验目的:熟悉在EOS应用程序中读文件和写文件的基本方法,通过为FAT12文件系统添加写文件功能,加深对FAT12文件系统和磁盘存储器管理原理的理解。通过查看FAT12文件系统的扫描数据和调试扫描的过程,理解FAT12文件系统管理软盘的工作方式,进一步修改FAT12文件系统的扫描功能,加深对FAT12文件系统的理解。

教师提出的问题:试着为EOS操作系统添加一个命令del FILENAME,使用此命令,可以把由参数FILENAME指定的文件或文件夹从根目录中删除。EOS应用程序在读写文件时,缓冲区大小设置为512的倍数比较合适,说明原因。

上述5个实验模块覆盖了操作系统原理中的重要概念,遵循由易到难的原则,待学生在实验过程中对操作系统原理有了一定认知后,再安排设计性的内容,进一步达到更高阶段,做好创新性实验。可以根据不同的教学目标和教学方式,有侧重地灵活选择实验内容并合理安排教学顺序。

4 操作系统实验教学效果评价

为了考察CBL-PBL模式的实验教学效果,笔者在所在学校计算机专业本科生的计算机操作系统实验教学中,对两个班共80人分别采用CBL-PBL教学法和传统教学法授课。课程结束后,采用不记名方式问卷调查,向学生发放关于CBL-PBL模式教学评价的调查问卷。每个问题设有3个选项,分别为“满意”“一般”和“不满意”,发放的问卷全部有效回收,问卷的调查结果见表1。经调查统计得出,学生对CBL-PBL教学模式和传统教学模式的总体满意度并绘制出饼状图,见图3。

表1 CBL-PBL实验教学效果调查表 %

由表1可以看出,在问卷调查中,有92.62%的学生认为CBL-PBL模式教学能增强专业知识和实践能力,94.57%的学生认为CBL-PBL模式教学可以提升创新能力,拓展解决思路;90.89%的学生对CBL-PBL模式教学法感到满意;其他几项指标的满意度也都较高,均达到预期目标。从图3可以看出,学生们对于CBL-PBL教学模式的总体满意度是89.78%,远远高于传统教学模式。

图3 两种实验教学模式的总体满意度比较

5 结语

通过以上研究发现,在计算机操作系统实验教学中引入了CBL-PBL模式教学法,实验教学效果明显胜过传统教学模式,有利于学生对计算机操作系统知识点的把握和整体教学质量的提升,能增强学习的积极主动性,促进学生对专业知识的理解和掌握,让学生在探索过程中享受乐趣,充分体现了“以学生为中心”的教育理念,因此在计算机操作系统实验课程的教学改革中,应大力推广CBL-PBL模式教学法。

但是,在实施CBL-PBL模式教学的过程中,依然存在一些具体的困难,对授课教师和学生都提出了更高、更多的要求。授课教师要做到由课程主导者向引导者的角色转变,要引入与知识点相适应的案例,结合大纲问题的提出以及实施过程中对全局的掌控等。学生也需要做到由原来的被动接受知识向主动学习转变。部分实验内容对学生来说还有一定难度,既要有浓厚的学习兴趣,还要有扎实的专业基础。总之,只有教师与学生密切配合,双向发力,才能达到预期的教学效果。

猜你喜欢
线程实验教学教学模式
群文阅读教学模式探讨
小议初中化学演示实验教学
甘肃教育(2020年4期)2020-09-11 07:42:36
电容器的实验教学
物理之友(2020年12期)2020-07-16 05:39:20
对初中化学实验教学的认识和体会
甘肃教育(2020年8期)2020-06-11 06:10:04
浅谈linux多线程协作
环球市场(2017年36期)2017-03-09 15:48:21
几何体在高中数学实验教学中的应用
“一精三多”教学模式的探索与实践
“导航杯”实践教学模式的做法与成效
学习月刊(2015年18期)2015-07-09 05:41:22
5E教学模式对我国中学数学教学的启示
Linux线程实现技术研究