欢迎来到天天文库
浏览记录
ID:21647076
大小:268.50 KB
页数:31页
时间:2018-10-23
《操作系统课程设计模板new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、操作系统课程设计报告题目:文件系统模拟设计学生姓名:丁宝殿学号:200917030124专业班级:网工09101同组姓名:周孚杰王泽湘邓家强张弛指导教师:熊齐设计时间:02.13-02.26指导老师意见:评定成绩:签名:日期:一、设计目的本课程设计是学习完“操作系统原理”课程后进行的一次全面的综合训练,通过课程设计,更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。二、设计内容(1)概述为LINUX设计一个简单的二级文件系统。要求做到以下几点:1、可以实现下列几条命令(至少4条)。Login用户登录Dir列文件目录Create创建文件Delet
2、e删除文件Open打开文件Close关闭文件Read读文件Write写文件2、列目录时要列出文件名、物理地址、保护码和文件长度。3、源文件可以进行读写保护。(2)设计原理和系统总体功能框架图设计原理:首先本文件系统采用两级目录,其中第一级对应于用户账户,第二级对应于用户账户下的文件。另外,为了简单本文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容。另外该文件系统依据以下数据结构及主要函数而设计的。(1)首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。(2)用户创建的文件,可以编号存储于磁盘上。如fil
3、e0,file1,file2...并以编号作为物理地址,在目录中进行登记。设计思想:本系统是模拟实现多用户多目录的文件系统(8个用户),在系统出现登录后,输入用户与口令,在用户登录系统后,可建立文件卷,将用户输入的文件保存在指定的文件中。系统的命令与其命令的具体实现,此模拟系统共提供了上述命令,并根据命令的含义与要求,用C++编程来完成所有具体操作。该系统可以模拟完成用户的登陆和验证,列出文件和目录,新建目录,改变目录,创立和编写文件,删除文件和退出系统等功能。【1】主要的一些数据结构1)i节点structinode{structinode*i_forw;structinode*i_bac
4、k;chari_flag;unsignedinti_ino;/*磁盘i节点标号*/unsignedinti_count;/*引用计数*/unsignedshortdi_number;/*关联文件数,当为0时,则删除该文件*/unsignedshortdi_mode;/*存取权限*/unsignedshortdi_uid;/*磁盘i节点用户id*/unsignedshortdi_gid;/*磁盘i节点组id*/unsignedintdi_addr[NADDR];/*物理块号*/2)磁盘i节点structdinode{unsignedshortdi_number;/*关联文件数*/unsign
5、edshortdi_mode;/*存取权限*/unsignedshortdi_uidunsignedshortdi_gid;unsignedlongdi_size;/*文件大小*/unsignedintdi_addr[NADDR];/*物理块号*/}3)目录项结构structdirect{chard_name[DIRSIZ];/*目录名*/unsignedintd_ino;/*目录号*/}4)超级块structfilsys{unsignedshorts_isize;/*i节点块块数*/unsignedlongs_fsize;/*数据块块数*/unsignedints_nfree;/*空闲块
6、块数*/unsignedshorts_pfree;/*空闲块指针*/unsignedints_free[NICFREE];/*空闲块堆栈*/unsignedints_ninode;/*空闲i节点数*/unsignedshorts_pinode;/*空闲i节点指针*/unsignedints_inode[NICINOD];/*空闲i节点数组*/unsignedints_rinode;/*铭记i节点*/chars_fmod;/*超级块修改标记*/}5)用户密码structpwd{unsignedshortp_uid;unsignedshortp_gid;charpassword[PWOSIZ]
7、;};6)目录structdir{structdirectdirect[DIRNUM];intsize;};7)查找内存i节点的hash表structhinode{structinode*i_forw;};8)系统打开表structfile{charf_flag;/*文件操作标志*/unsignedintf_count;/*引用计数*/structinode*f_inode;/*指向内存i节点*/unsignedlong
此文档下载收益归作者所有