欢迎来到天天文库
浏览记录
ID:18541993
大小:216.50 KB
页数:15页
时间:2018-09-18
《操作系统课程设计报告63861new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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删除目录newfile
2、建立文件cat打开文件copy拷贝文件,除支持模拟Linux文件系统内部的文件拷贝外,还支持host文件系统与模拟Linux文件系统间的文件拷贝del删除文件check检测并恢复文件系统1.2.2)实现命令解释器shell使用管理程序simdisk作为后台进程运行,利用本设计任务的shell操作simdisk。实现在前端的shell进程和后端的simdisk进程之间利用共享内存进行进程间通信(IPC)。1.2.3)实现命令解释器shell实现多个进程同时对模拟文件系统进行操作。设计管理程序simdisk的用户访问权限管理。对模拟文件系统的操作要求做到:共享读,互斥写。
3、2设计环境及设计思想2.1设计环境课程设计的环境是在WindowsXp操作系统下新建一个文件作为开辟的磁盘空间,编程工具使用的是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)超级块struc
4、tSuper_Block{intFree_Inode;//空闲Inode数目intFree_Block;//空闲Block数目};superblock中记录了空闲的Inode节点数目Free_Inode与空闲的磁盘块数目Free_Block。2.2.4)Inode位图与Block位图intInode_Bitmap[Inode_Num];//Inode位图intBlock_Bitmap[Block_Num];//Block位图本课程设计设计使用位图法记录空闲Inode节点与空闲Block块。Inode位图Inode_Bitmap与Block位图Block_Bitmap记
5、录了各个Inode节点与磁盘块是否为空,为1代表已被占用,为0代表未被占用。2.2.5)Inode节点结构structinode{intdecide;//判断是文件还是目录,4byte;0为目录,1为文件charname[28];//文件/目录名,28byteintFirst_Block;//所占用的第一块磁盘块地址,4byteintlength;//文件内容长度,4byteintindex;//在inode区中的编号,4byteintparent;//父索引节点,4byteintChild_Num;//子节点个数,4byteintchild[15];//子索引节点,
6、15*4=60byteSYSTEMTIMEctime;//文件创建时间,16byte};每个文件与目录的相关信息使用Inode节点来进行记录。每个文件与目录都占用一个Inode节点,Inode区共有1024个Inode节点,每个Inode节点大小为128byte,因此Inode区共占用1024*128byte=128k。2.2.6)当前目录与当前目录索引intcurr;//当前索引值structinode*Curr_Inode;//当前inode索引指针charcurrent[512];//当前路径在刚进入文件系统时使用根目录作为当前目录,使用cd命令时改变当前目录。
7、3程序设计流程及运行结果3.1程序设计流程图判断该文件系统是否已创建过是否新建文件系统读取原文件系统信息接受并处理输入的命令未输入exit命令关闭文件系统exit3.2运行结果3.2.1)登陆初始界面显示命令列表,显示的当前目录为根目录。3.2.2)info命令显示已使用的磁盘块数目,空闲磁盘块数目,目录的数目,文件数目。3.2.3)cd命令可以使用绝对路径与相对路径进行cd命令,改变当前目录并显示。3.2.4)dir命令显示指定目录下的子目录及文件,显示信息包括目录或文件名,类型,创建时间。其中dir/s命令可显示所有子目录及文件。当目录不存在时给
此文档下载收益归作者所有