操作系统原理实验指导书2012

上传人:20****03 文档编号:170296506 上传时间:2021-03-01 格式:DOC 页数:36 大小:392.50KB
返回 下载 相关 举报
操作系统原理实验指导书2012_第1页
第1页 / 共36页
操作系统原理实验指导书2012_第2页
第2页 / 共36页
操作系统原理实验指导书2012_第3页
第3页 / 共36页
操作系统原理实验指导书2012_第4页
第4页 / 共36页
操作系统原理实验指导书2012_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《操作系统原理实验指导书2012》由会员分享,可在线阅读,更多相关《操作系统原理实验指导书2012(36页珍藏版)》请在金锄头文库上搜索。

1、计算机科学与技术专业适用操作系统原理实验指导书南京工业大学信息科学与工程学院2008年4月目 录一、实验目的1二、实验要求与内容12.1 实验题目12.2 初始目录结构12.3 系统操作命令简介12.4 几点说明2三、设计方案33.1 采用FAT文件格式33.2 目录项(FCB)结构33.3 根目录43.4 主要函数43.5 用户已打开文件表(UOF)53.6 程序中有关变量的说明51. 当前目录curpath数据结构52. 删除文件恢复表udtab数据结构53. 全局变量ffbp和Udelp54. 全局数组comd5PATH_LEN65. 全局数组temppathPATH_LEN63.7 主

2、要函数的流程图61. 主函数main()的流程图62. create命令流程图63. cd命令流程图74. del命令流程图85. dir命令流程图86. md命令流程图97. rd命令流程图98. open命令流程图109. close命令流程图1010. write命令流程图1111. read命令流程图1212. copy命令流程图1213. ren命令流程图1414. attrib命令流程图1415. undel命令程序流程图1516. FindPath( )函数程序流程图1517. FindFCB( )函数程序流程图1518. ProcessPath( )函数程序流程图17四、实验任

3、务184.1 修改md命令184.2 修改Help命令或命令行预处理程序181. 修改help命令的显示方式和显示内容182. 修改命令行预处理程序184.3 新增fc命令,实现两个文件的比较184.4 新增replace命令,实现文件取代184.5 新增move命令,实现文件“搬家”及子目录改名194.6 新增batch命令,实现批处理194.7 修改close、type等命令,允许不带文件名参数214.8 完善copy命令221. 改正某些缺陷222. 允许覆盖同名文件(选做内容)224.9 增加输出重定向功能(选做内容)221. type命令的输出重定向形式222. dir命令的输出重定

4、向形式234.10 修改del、copy等命令,使其可以使用统配符 *(选做内容)234.11 修改copy命令,增加合并复制功能(选做内容)234.12 修改程序,实现多磁盘文件系统(选做内容)244.13 修改磁盘块容量(选做内容)244.14 修改undel命令(选做内容)251. 删除文件恢复表udtab不用数组存储,而直接存储在磁盘空间252. 修改undel命令的执行方式并增强其功能253. 采用类似于Windows的回收站方案264.15 修改read命令,允许不带文件名参数(选做内容)264.16 修改write命令,允许不带“文件名”参数(选做内容)264.17 修改writ

5、e命令,增加“删除”方式(选做内容)27五、模拟文件管理系统中操作命令使用说明27六、学生应提交的实验材料336.1 实验报告336.2 源程序清单及其可执行文件336.3 程序测试、运行的结果33操作系统原理实验指导书一、实验目的理解操作系统文件系统的某些工作原理,学习文件操作命令的设计方法。通过实验,使学生加深对操作系统文件系统某些问题的理解,归纳学习方法和思考方法,做到理论联系实际。培养学生分析问题、解决问题的能力,提高学生软件设计能力和逻辑思维能力。二、实验要求与内容2.1 实验题目模拟文件管理系统的设计设计实现一个简单的模拟文件管理系统,包括目录文件、普通文件,以及一些文件操作命令和

6、目录操作命令(例如可以模仿DOS的有关命令)。具体要求如下列2.2和2.3。2.2 初始目录结构程序初始化时构造如图1所示的目录结构。binusrdevuserlibbinlisunmaauto图1 初始目录树目录文件无框 普通文件【图例说明】根目录图中auto是(普通)文件(初始化时假设是空文件),其余都是子目录(目录文件)。2.3 系统操作命令简介在模拟文件管理系统中,要求可以实现如下操作:n 改变当前目录:cd 。当前目录(工作目录)转移到指定目录下。指定目录不存在时,给出错误信息。若命令中无目录名,则显示当前目录路径。n 创建文件:create 。创建一个指定名字的新文件,即在目录中增

7、加一目录项,不考虑文件的内容。对于重名文件给出错误信息。n 删除文件:del 。删除指定的文件,即清除其目录项和回收其所占用磁盘空间。对于只读文件,删除前应询问用户,得到同意后方能删除。当指定文件正在使用时,显示“文件正在使用,不能删除”的信息,当指定文件不存在时给出错误信息。 n 显示目录:dir 。显示“目录名”指定的目录中文件名和第一级子目录名。若指定目录不存在,则给出错误信息。n 创建目录:md 。在指定路径下创建指定目录,若没有指定路径,则在当前目录下创建指定目录。对于重名目录给出错误信息。n 删除目录:rd 目录名。若指定目录为空,则删除之,否则,给出“非空目录不能删除”的提示。不

8、能删除当前目录。n 打开文件:open 。若指定文件存在且尚未打开,则打开之,并在用户打开文件表(UOF)中登记该文件的有关信息。若指定文件已经打开,则显示“文件已打开”的信息;若指定文件不存在,则给出错误信息。只读文件打开后只能读不能写。n 写文件:write insert。在文件的指定位置处写入新内容。n 读文件:read 。从已打开文件中读指定内容并显示。n 关闭文件:close 。若指定文件已打开,则关闭之,即从UOF中删除该文件对应的表项。若文件未打开或文件不存在,分别给出有关信息。n 显示文件内容:type 。显示指定文件的内容。若指定文件不存在,则给出错误信息。n 复制文件:co

9、py 。命令功能:为目标文件建立目录项,分配新的盘块,并将源文件的内容复制到目标文件中。n 文件改名:ren 。将指定文件的名字改为“新文件名”。若原文件不存在,给出错误信息。若原文件存在,但正在使用,也不能改名,同样显示出错信息。应检查新文件名是否符合命名规则以及是否存在重名问题。n 显示、修改文件或目录属性:attrib 。若命令中无“文件属性”参数,则显示指定文件的属性;若命令中有“文件属性”参数,则修改指定文件的属性。此命令对目录名同样适用。2.4 几点说明n 命令中的目录名和文件名可以统称为路径名,支持绝对路径(又称全路径)和相对路径;n 路径名是由目录结构中各级目录文件名和普通文件

10、名(必定是最后一个名)用分隔符“/”连接而成的字符串组成。其中以字符“/”开始的路径名是绝对路径,表示从根目录开始;不是以字符“/”开始的路径名是相对路径,表示从当前目录开始。当前目录又称工作目录。n 本系统规定,名字(文件名或目录名)的命名规则如下:(1) 名字长度不能超过FILENAME_LEN-1个字节,即10个字符(符号常数FILENAME_LEN为11)。允许输入的名字超过10个字符,但只有前10个字符有效;(2) 名字一般由字母(区分大小写)、数字、下划线等组成,名字允许是汉字;(3) 名字不能包含以下16个字符之一: * + , / : ; ? | space(空格)(4) 名字

11、中允许包含字符“.”,但它不能是名字的第一个字符,故“.”、“.abc”、“.”和“.abc”等等都是不合法的名字。“.”代表父目录是例外,但它并非由用户通过键盘输入的名字,故不需要符合名字的命名规则。n 本系统中,命令名(如dir)和命令参数中的有关关键字(如append或app、insert或ins等)不区分大小写。文件名和目录名中的字母是区分大小写的。n 命令格式中,“”代表某个字符串 ,“ ”中内容为可选项。三、设计方案本系统提供的参考程序在C+环境中开发,下面介绍系统的设计方案。3.1 采用FAT文件格式文件在磁盘上的组织采用FAT文件格式,为了设计程序方便,本系统的FAT表用整型数

12、组FATK表示(K为总盘块数,本系统中假定K=5000,即共有5000个盘块),而实际的操作系统,FAT表是存储在磁盘中的,当系统启动时装入内存。FAT0中存储空闲盘块数。磁盘空间用字符数组DiskKSIZE (其中SIZE为每个盘块的字节数,即盘块的容量)表示。本系统设定磁盘块容量为64。3.2 目录项(FCB)结构本模拟系统的文件目录项(FCB)结构如下:文件名属性首块号文件长度(11字节)(1字节)(2字节)(2字节)struct FCB/每个目录项16个字节char FileName11;/文件名最多10个字符且以0结尾char Fattrib;/文件属性short int Addr;

13、/文件首块号short int Fsize;/文件长度;u 为简单,本系统不考虑文件扩展名,文件名为110个字符,以结尾标记0存储(实际操作系统目录项中文件名一般没有结尾标记),命令中输入的文件名若超过10个则截取前10个字符。u 文件属性为1个字节,其二进制位对应的属性如下图所示。D7D6D5D4D3D2D1D00001表示目录0/101表示系统0/11表示隐藏0/10/11表示只读u 文件的首块号Addr=0代表空文件(此时文件长度Fsize=0)。文件名(目录名)的第一个字符的ASCII码为0E5H或00H,代表空目录项。其中0E5H是目录项被删除后的标志,00H代表该目录项从未使用过。

14、u 每个目录项占用16个字节,因系统中假设磁盘块大小SIZE=64,因此,每个盘块可存储4个目录项。u 除根目录外,每个目录中的第一个目录项存储父目录的FCB(该目录项的名字为“.”),其地址是父目录的首块号,它的作用是相当于指向父目录的指针,用于实现从该目录退回父目录。目录项“.”是在创建目录时,由系统自动建立的,它不能被rd命令删除。3.3 根目录本系统假设根目录存储在130号盘块中,即存储在Disk1Disk30的盘快中。因每个盘块可存储4个目录项,故本系统根目录中的文件目录项及子目录项最多共计120个。从31号盘块开始为文件区,用于存储文件及子目录。本系统初始化时,图1所示的目录树的磁盘分配情况如图2所示。根目录Disk1 bin,usr,auto,dev Disk31:. Disk33:.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号