教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 《操作系统》的实践教学研究

《操作系统》的实践教学研究

上传者:网友
|
翻新时间:2023-01-10

《操作系统》的实践教学研究

《操作系统》的实践教学研究

1 概述

《操作系统》课程是计算机及相关专业的核心基础课,该课程不仅要求学生较好地掌握理论基础,而且要求培养学生良好的课程实践能力。由于该课程的内容比较抽象、深奥,并且课程实验难做,实验效果不明显,所以,该课程的实践环节在很多学校成为摆设,有的学校干脆去掉实践环节。然而,实践教学又是本门课的重要组成部分,实践教学对于学生理解和掌握操作系统的基本原理和方法,为今后从事系统程序设计,并发程序设计,多用户环境应用程序设计打下坚实的基础。所以,本门课不但必须包含实践内容, 而且还应该加强,使之能更好地辅助课堂教学。[1]

2 《操作系统》实践环节的运作情况

经过对各高校《操作系统》实践教学的调查,《操作系统》实践部分的开设形式主要有以下四种:

2.1 验证操作系统部分功能的实验

这种实验方式最简单,主要思路是,以某个实际的商业操作系统为实验环境,学生可以尝试执行操作系统提供的某些功能,能力更强的学生还可利用操作系统提供的系统调用函数编写、运行程序,以改进功能。通过这两种方式,学生可体验操作系统原理在实际商用操作系统中是如何工作的。

这种方式的特点是,学生不必编写操作系统功能实现的代码,对完全理解操作系统的内涵意义不大。

2.2 模拟经典算法的实验

这是比较常见的一种实验方式。其执行过程是,由教师选取操作系统中的一些经典算法,如读者-写者问题,电梯算法,让学生使用其熟悉的编程语言(如:C语言、C++语言)来实现算法。

该方式与程序设计课程的上机环节相似,这有助于学生理解《操作系统》的理论和技术,但是,这种方式由于缺乏训练学生对操作系统完全性的把握,达不到培养学生完整掌握操作系统的目的。

2.3 替换实际操作系统的主要模块

这种方式对学生的编程能力要求较高。其执行过程是,以开源的操作系统为平台,要求学生选取其中的主要功能模块,并对其进行替换及扩展。然而,开源的操作系统一般比较庞大,结构环境复杂,对师生的要求很高,一般高校实施的效果不好,最终只有小部分学生达到实验目的,学生的受益面不大。[3]

2.4 设计一个操作系统雏形

这种方式的执行过程是,教学中可选取一个包含简单内核的教学操作系统,让学生逐步改进、扩展其功能;或者干脆让学生设计一个全新的操作系统雏形,该雏形包含操作系统的基本内核功能,如处理机管理、进程管理、内存管理、设备管理、文件管理功能。

该方式与课程实验教学目标一致,理论上比较理想,但在实际的执行过程中,由于操作系统是一个大型的系统软件,其设计、结构相当复杂,因此这种方式实施起来难度很大。

3 在教学操作系统GeekOS上完成实验教学

由于一般的商业操作系统设计复杂,结构庞大,学生规定课时内很难全面掌握,同时,这些操作系统已经非常成熟,差不多实现了全部功能,学生没有多少新的工作可做。所以,设计一个基于教学操作系统的实践教学平台显得尤为迫切和必要。

3.1 教学操作系统的分类

教学操作系统有两大类:一类是针对RISC结构MIPS处理器的,例:Nachos;另一类是针对CISC结构的X86通用处理器的,例:Minix、 GeekOS。

3.2 GeekOS操作系统概述

最通用的处理器是CISC结构的X86通用处理器。它是一个用C语言开发的操作系统,学生可以在Linux或UNIX环境下对其进行功能扩充,也可以在g(project1等项目中还包含有磁盘镜像diskc.img),makefile项目管理文件。

2) Include文件夹。包含两个子目录,分别是geekos和libc,在geekos子目录中有kthread.h,keyboard.h等头文件,在libc中包含有GeekOS支持的C语言标准字符串函数头文件string.h。

3) scripts文件夹。包含项目编译时用到的一些脚本文件。

4) src文件夹。包含系统内核源代码,用户修改GeekOS系统时要修改的源代码如main.c等都位于这个目录中,在User子文件夹中一般是用来存放用户的测试文件,在tools子目录中的代码是用来建立pfat测试文件系统的。

3.3.2七个项目的功能

project0:在该项目中,要求学生实现一个内核级的I/O进程,该进程能从键盘接收一个按钮,并显示在显示屏上。该项目的目的是让学生了理解GeekOS的编译、链接和运行,明白计算机系统是如何启动的。

project1:在该项目中,要求学生熟悉可执行链接文件(ELF)的格式,并通过编程程序来分析该文件,同时将分析结果送到加载器。该项目的目的是让学生理解ELF文件的结构,使学生掌握如何加载和运行可执行文件。

在提供的GeekOS内核系统的基础上,为学生设计了7个由易到难的设计项目用于GeekOS的改进。这些项目分别涵盖了操作系统内核的各个基本模块:系统启动,进程管理,存储管理,文件系统,访问控制以及进程间通信。7个项目都规定了改进的目标,并提供了一些设计指导性的意见,但没有提供源代码,所以学生首先必须熟悉GeekOS的基本工作原理,才能开展各个项目的设计与实现。

project2:在该项目中,要求学生编程来支持用户态进程,这种支持包括初始化用户态进程空间、初始化用户进程空间、切换用户进程、导入用户程序。该项目中,计算机存储分配方式还是采用段式分配。该项目实现后,学生就可以使用GeekOS提供的命令行解释器Shell运行一些命令来执行PFAT文件系统内的用户测试程序。

project3:在该项目中,要求学生改进GeekOS的调度程序,实现基于4级反馈队列的调度算法(初始GeekOS系统仅提供了FIFO进程调度算法),并实现信号量,支持进程间通信。

project4:在该项目中,要求学生编程实现分页虚拟存储管理,以替代前述项目中一直采用的段式存储管理。学生实现分页式虚存管理以后,系统在内存不足时,就可以将部分内存页面调出送到硬盘,以缓解内容压力,实现虚拟存储技术。

project5:在该项目中,要求学生实现GOSFS文件系统,该文件系统采用虚拟文件系统,可加载不同的文件系统,PFAT只读文件系统是默认加载的文件系统。该项目的目的是要实现一个多级目录的、可读写的文件系统。

project6:在该项目中,要求在文件系统中新增一个访问控制列表,并使用匿名半双工管道实现进程间通信。

4 《操作系统》实践环节的考核

《操作系统》实践环节的考核非常重要,好的考核将激励学生努力学习,达到实验效果,办法如下:

1)教师制定实验报告格式和要求,教师对学生完成的实验报告的作检查和评价;

2)对设计性实验,要求学生回答并作出评价,回答的问题主要有:阐述解决该问题的算法思想、所使用的数据结构是如何设计的、使用的测试用例是如何选取和设计的、算法性能怎么样。

3)对一些学生能实现的算法,要求学生上机演示,教师在其演示期间可提问并作评价:主要程序代码的含义,分析及解释运行结果。[4]

5 结束语

本文讨论了《操作系统》课程实践环节的主要动作方式,并分析其利弊,然后提出了选用GeekOS教学操作系统作为实践平台来开展实践教学工作。在实际运作过程中,为达到较好的学习效果,可对学生实施分组,每组6个学生(好中差搭配),灵活调整学生要完成的任务。

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

春天回来了
我的家乡
我们的班主任
我的家乡
记一次献爱心活动
天气娃娃
这算啥
我的烦恼
这算啥
我的家乡
小香蕉
花皮球
汉堡包
我家的小羊
探讨我国社区银行的发展路径
关于天然气销售企业营销模式的研究与讨论
挖掘地方旅游信息资源,促进民族地区旅游产业的可持续发展
浅谈国际金融格局调整及中国对策
我国管理层收购(MBO)动因及实现路径探析
浅析我国个人所得税税制改革
基于COSO 框架下高校后勤企业内部控制体系的构建
苍南县废旧商品回收利用体系建设的研究
中职会计专业学生诚信品质培育研究
浅析金融企业会计的发展
人造板产品质量安全风险因素分析及解决方法初步研究
浅析我国福利彩票公益金使用效益
事业单位会计核算中存在的问题及其对策
大力推进沿边金融创新,加快培育沿边开放优势
档案管理在行政工作的运用
《黄河的主人》教学设计
《信用卡》教学设计
《给予是快乐的》教学设计
《练习四》教学设计
《习作6》教学设计
《徐增巧破巫术》教学设计
《访问环保专家方博士》第二课时教学设计
《清平乐村居》教学设计
《黄河的主人》第二课时教学设计
《黄河的主人》教学设计
《给予是快乐的》教学设计
《给予是快乐的》教学设计
《给予是快乐的》教学设计
《访问环保专家方博士》教学设计
《给予是快乐的》第一课时教学设计