课程设计(上机实验)报告
课程名称: 操作系统原理 学生姓名: 沈海洋 学 号:
所在学院: 计算机科学与技术学院 专 业: 指导教师: 钱景辉
2016年 1 月 11 日
课程设计(上机实验)报告填写说明
1.本报告作为指导教师对学生课程设计(上机实验)评分的依据材料之一。此报告应在指导教师指导下,由学生在课程设计(上机实验)结束时完成,以班为单位收齐后按时交给指导教师批阅;
2.本报告内容必须用黑墨水笔工整书写或按信息学院统一设计的电子文档标准格式(可从信息学院网页上下载)打印(小4号宋体,1.5倍行距),禁止打印在其它纸上后剪贴;
3.本报告中的“设计说明书”应按论文的格式成文,并直接书写(或打印)在本报告“设计说明书”栏目内。其内容可以结合设计题目的内容和要求,根据自己在本课程设计(上机实验)阶段所完成的工作,阐明自己所采取的设计思想和方法(硬件的设计及其电原理图分析介绍,和/或软件的算法和数据结构及其主要模块介绍、程序在测试用例下的测试运行结果等)、完成本课程设计的心得体会、设计中的不足及改进设计的设想或建议等。 说明书的篇幅应不少于2000字。
4.对硬件类课程设计,应绘制或打印硬件设计图纸或实验原理图,作为设计报告的附件。
5.软件类课程设计(上机实验)的软件文档(含软件清单和程序运行的有关结果)可以单独打印成册或上传到指导教师指定计算机,作为课程设计报告的附件。
课程设计(上机实验)报告的附件是指导教师对学生课程设计(上机实验)评分的另一个依据。
- 1 -
课 程 设 计(上 机 实 习)报 告
课程设计(上机实验)题目: 文件系统的模拟设计 目的与任务: 理解操作系统文件系统的某些工作原理,学习文件操作命令和目录操作命令的设计方法。通过实验,使学生加深对操作系统文件系统某些问题的理解,归纳学习方法和思考方法,做到理论联系实际。培养学生分析问题、解决问题的能力,提高学生软件设计能力和逻辑思维能力。 设计实现一个简单的文件系统,包括目录文件、普通文件,以及一些文件操作命令和目录操作命令(例如可以模仿DOS的有关命令)。 1.修改md命令; 2.修改Help命令; 3.修改命令行预处理程序; 4.新增fc命令,实现两个文件的比较; 5.新增batch命令,实现批处理; 6. 完善copy命令,改善某些缺陷。 内容和要求: 1.修改md命令:增加“属性”参数,用于创建指定属性的子目录。命令形式如下:md <目录名>[ <属性>]。属性包括R、H、S以及它们的组合(不区分大小写,顺序也不限)。例如:md usr rh 其功能是在当前目录中创建具有“只读”和“隐藏”属性的子目录user. 2.修改Help命令:修改help命令的显示方式和显示内容:修改HelpComd()函数,使之提供菜单式的较详细的帮助信息。例如可以先用菜单形式简单列出各命令名称,当用户选择某个命令的序号后,再比较详细地介绍该命令,包括命令的各种形式,每种形式的功能,以及某些举例说明等等。 3.修改命令行预处理程序:修改命令行预处理函数ParseCommand( ),使以下命令行(命令与参数间无空格符)可以正确执行:cd/,cd..,dir/usr.copy/usr/boy mail 即命令名称与后边的“/”或“..”之间不需要空格也能正确执行。 4.新增fc命令,实现两个文件的比较:命令形式:fc <文件名1> <文件名2> 5.新增batch命令,实现批处理:命令形式:batch batchfile 命令功能:从磁盘文件batchfile逐行读入命令行执行,直到batchfile中所有命令行都执行完毕为止。 6.完善copy命令,改善某些缺陷:正确的功能应该是:若当前目录中不存在文件boy,则报错;第2个命令若当前目录是根目录,因根目录没有父目录,故应报错;若当前目录的父目录中已经存在名为boy的文件,也报错(或询问用户是否覆盖)。其他情况上述命令都应能正确执行。 - 2 -
课 程 设 计(上 机 实 习)报 告
设 计 说 明 书 (说明书的撰写要求请参看封里的“报告填写说明3”。篇幅不够可附页) 一.修改md命令 流程图如下: 开始 命令格式正确吗 是 否 否 指定路径正确吗 是 是 新目录有重名吗 否 在指定目录中查找空目录项(若已无空目录项,则为其分配新的盘块),找到后为新目录登记目录项。为新目录分配1盘块,用于登记该目录的第一个目录项,即“..”目录项。查询文件的RHS属性,并记录、存储。 显示相关的错误信息 返回 - 3 -
课 程 设 计(上 机 实 习)报 告
设计思想:程序的指令格式为md user |rh,需改为md user rh格式,因此可在md user |rh中修改代码实现修改功能。 要实现此功能,只需要获取目录的属性时删除判断操作符“|”的过程即可。 具体方法:在GetAttrib函数中删除如下代码: if (str[0]!='|') { } cout<<\命令中属性参数错误。\\n\return -1; 修改后的操作方法:输入 md user rh 即可正确执行 截图如下: 二.修改Help命令 流程图如下:
- 4 -