操作系统课程设计报告63861new_第1页
操作系统课程设计报告63861new_第2页
操作系统课程设计报告63861new_第3页
操作系统课程设计报告63861new_第4页
操作系统课程设计报告63861new_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统课程设计班级: 计算机学院信息安全5班姓名: 王皓 学号: 200530501359 指导老师: 贺小箭 日期: 2008年2月 1. 课程设计任务及要求1.1设计任务 模拟实现Linux文件系统,模拟文件系统的前端操作shell,模拟文件系统的操作管理。1.2设计要求1.2.1)实现Linux文件系统的基本操作功能在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的模拟Linux文件系统。可以实现以下功能:info 显示整个系统信息,目录名与文件名支持绝对路径与相对路径。cd 改变目录dir 显示目录,Dir /s命令可显示所有子目录 md 创建目录rd 删除目录ne

2、wfile 建立文件cat 打开文件copy 拷贝文件,除支持模拟Linux文件系统内部的文件拷贝外,还支持host文件系统与模拟Linux文件系统间的文件拷贝del 删除文件check 检测并恢复文件系统1.2.2) 实现命令解释器shell使用管理程序simdisk作为后台进程运行,利用本设计任务的shell操作simdisk。实现在前端的shell进程和后端的simdisk进程之间利用共享内存进行进程间通信(IPC)。1.2.3) 实现命令解释器shell实现多个进程同时对模拟文件系统进行操作。设计管理程序simdisk的用户访问权限管理。对模拟文件系统的操作要求做到:共享读,互斥写。2

3、 设计环境及设计思想2.1 设计环境 课程设计的环境是在Windows Xp操作系统下新建一个文件作为开辟的磁盘空间,编程工具使用的是VC+ 6.0。2.2 设计思想2.2.1)总体设计思想新建一个100M的文件“C:LinuxOs.dat”作为磁盘,通过对该文件进行操作来实现模拟Linux文件系统。2.2.2)磁盘块分配将整个磁盘分为102400个小磁盘块,每个小磁盘块占用1k。superblock(超级块)占用第一块,Inode位图占用2-5块,磁盘块位图占用6-405块,Inode区占用406-533块,剩余所有磁盘块用于文件内容的存储。2.2.3)超级块struct Super_Blo

4、ck int Free_Inode; /空闲Inode数目 int Free_Block; /空闲Block数目; superblock中记录了空闲的Inode节点数目Free_Inode与空闲的磁盘块数目Free_Block。2.2.4)Inode位图与Block位图int Inode_BitmapInode_Num; /Inode位图int Block_BitmapBlock_Num; /Block位图本课程设计设计使用位图法记录空闲Inode节点与空闲Block块。Inode位图Inode_Bitmap与Block位图Block_Bitmap记录了各个Inode节点与磁盘块是否为空,为1

5、代表已被占用,为0代表未被占用。2.2.5)Inode节点结构struct inode int decide; /判断是文件还是目录,4byte;0为目录,1为文件 char name28; /文件/目录名,28byte int First_Block; /所占用的第一块磁盘块地址,4byte int length; /文件内容长度,4byte int index; /在inode区中的编号,4byte int parent; /父索引节点,4byte int Child_Num; /子节点个数,4byte int child15; /子索引节点,15*4=60byte SYSTEMTIME

6、ctime; /文件创建时间,16byte;每个文件与目录的相关信息使用Inode节点来进行记录。每个文件与目录都占用一个Inode节点,Inode区共有1024个Inode节点,每个Inode节点大小为128byte,因此Inode区共占用1024*128byte=128k。2.2.6)当前目录与当前目录索引int curr; /当前索引值struct inode* Curr_Inode; /当前inode索引指针char current512; /当前路径在刚进入文件系统时使用根目录作为当前目录,使用cd命令时改变当前目录。3 程序设计流程及运行结果3.1 程序设计流程图判断该文件系统是否

7、已创建过 是 否新建文件系统读取原文件系统信息接受并处理输入的命令 未输入exit命令关闭文件系统 exit3.2运行结果3.2.1)登陆初始界面显示命令列表,显示的当前目录为根目录。3.2.2)info命令显示已使用的磁盘块数目,空闲磁盘块数目,目录的数目,文件数目。3.2.3)cd命令可以使用绝对路径与相对路径进行cd命令,改变当前目录并显示。3.2.4)dir命令显示指定目录下的子目录及文件,显示信息包括目录或文件名,类型,创建时间。其中dir /s命令可显示所有子目录及文件。当目录不存在时给出错提示信息。3.2.5)md命令创建新目录,可以在指定目录或当前目录下创建目录,当重名时给出提

8、示信息。3.2.6)rd命令删除目录及其下所有的文件及子目录,当目录不为空时提示是否真要删除。3.2.7)newfile命令创建新文件,在创建时可为文件输入内容,支持相对路径与绝对路径创建。3.2.8)cat命令打开文件,显示文件内容,支持相对路径与绝对路径打开。3.2.9)copy命令该命令可实现模拟系统内部文件的互相拷贝,模拟系统文件与外部文件之间的相互拷贝。其中拷贝源端必须存在;拷贝目的端是内部文件时应未被创建过。若使用内部文件,路径前应加上“L:”;若使用外部文件,路径前应加上该路径的根目录,例如“C:”,若是完整路径,应加上“C:”。(a) 内部文件到外部文件的拷贝其中若外部文件使用

9、相对路径时,文件存放于本vc+6.0工程文件夹下。(b) 内部文件之间的拷贝无论使用相对路径还是绝对路径,路径前都应加上“L:”。(c) 外部文件到内部文件的拷贝3.2.10)del命令对指定文件进行删除,支持相对路径与绝对路径,若不存在该文件时给出出错提示。3.2.11)check命令对文件系统中各文件与目录的Inode节点进行检查,若Inode节点中dicide值出现异常,将其置为空节点。3.2.12)exit命令退出文件系统,并对信息进行保存,若不通过exit命令退出则不保存信息。3.2.13)help命令显示出命令列表,提供帮助。4 选取算法优缺点分析4.1判断文件与目录是否存在在刚开

10、始编写代码时,我直接使用一个search函数来判断文件和目录是否存在,但在随后的编程中,我发现不少代码段都需要判断该文件的父目录是否存在。比如md,newfile命令,要判断清楚到底是父目录下不存在该文件还是父目录根本不存在。因此我重新写了一个Get_Parent函数来寻找父目录,再在父目录下使用search函数来判断。这样虽然增加了search的复杂度,但增加了代码的可复用性,简化了后面的编程。4.2目录的删除 由于删除目录不仅要删除该目录,还要删除该目录下所有的子目录和文件,可以归结到树的相关操作,我使用递归来实现目录的删除。 空目录及文件可直接删除,若目录不为空时,进入其子目录进行递归。

11、递归算法优点在于代码简明易懂,缺点在于使程序性能变差。4.3 采用位图方式及连续分配使用位图方式记录空闲Inode节点及空闲块;使用连续分配方式来分配磁盘块。这样做的优点在于:实现简单,只需对数组进行操作,并且在记录文件时只需记录下首磁盘块First_Block和文件的块数;读操作性能好,只需单次操作即能读出整个文件。缺点在于:随着读入文件的增多,磁盘会变得零碎。5 课程设计总结及心得体会本次课程设计要求模拟Linux系统文件系统,这样不仅要求编写者要有一定的编码能力,而且要清楚Linux文件系统具体实现方式,能够从复杂的实现中建立一个较为清晰简便的模型。首先我温习了课本上关于文件系统的相关知识,归纳出一个简易且思路较为清晰的模型,这样大大加深了我对文件系统的掌握。接着,在编码过程中,我也遇到了不少困难:在处理文件路径时字符串的操作相当繁琐,甚至出现了定义野指针的错误;考虑问题不能从全局上全面地把握,导致在编程过程中漏掉某些情况或编写功能重复的代码等等。最后,我也从本次课程设计中获得一些心

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论