多用户多级目录结构文件系统设计与实现毕业设计(论文)

多用户多级目录结构文件系统设计与实现毕业设计(论文)

ID:8465195

大小:212.50 KB

页数:66页

时间:2018-03-28

多用户多级目录结构文件系统设计与实现毕业设计(论文)_第1页
多用户多级目录结构文件系统设计与实现毕业设计(论文)_第2页
多用户多级目录结构文件系统设计与实现毕业设计(论文)_第3页
多用户多级目录结构文件系统设计与实现毕业设计(论文)_第4页
多用户多级目录结构文件系统设计与实现毕业设计(论文)_第5页
资源描述:

《多用户多级目录结构文件系统设计与实现毕业设计(论文)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、操作系统课程设计姓名:学号:班级:电话:邮箱:课程设计题目:一个多用户多级目录结构文件系统设计与实现编译环境:Linux运行环境:Linux一、设计思想说明1设计环境课程设计的环境是Linux操作系统。设计时可利用Linux提供的文件管理的功能调用,建立一个模拟的文件系统。基本思想是,在Linux系统中创建一个较大容量的文件,作为所设计的文件系统的“文件卷”,并利用Linux系统的功能调用,编写各程序模块。2、文件卷的组织以1M的存储器空间作为文件空间,空间“分块”,编号为0#~(BLKMAX-1)#。“分块”就是规定对文件卷的读/写以块

2、为单位,每次读/写的起点为块大小的整倍数。分块主要体现在文件卷的读/写模块上。#defineBSIZE512/*512bytes/块*/#defineBLKMAX2048/*共2048块*/0#块的作用:0#块是专用块(超级块)。前半部用于存放文件卷空间的位示图(bitmap),位状态='0'表示对应块空闲,状态='1'表示已分配。后半部的最后32个字节用于存放根目录的目录结构。0#块不参与文件空间的动态分配。1#~(BLKMAX-1)#块用于存放文件(普通文件和子目录文件)的信息。二、系统结构的说明本文件管理系统分为五层,上层调用下层,

3、下层为上层服务。以下为各层(由低到高)的简要说明:1、块管理层,通过TBlock类实现设下列主要函数:balloc()--块分配函数brelse()--块释放函数bread()—读一块函数bwrite()—写一块函数2、FCB管理层,通过TFcb类实现功能涉及到FCB结构的操作,定义了一些与FCB操作相关的函数3、打开文件管理层,通过TOFile类实现功能为涉及ofile结构的操作。4、命令解释层,通过TEnter类和TOrder类实现功能为接受来自用户的命令,并解释、执行用户提出的文件访问操作。按系统的的功能要求,可以Open(),Cl

4、ose(),Read(),Write();等函数。三、数据结构的说明用户信息的存储结构:structUserNode//注册用户信息{chard_flag;//标识该用户信息是否有效,超级用户为用户数目,-1表示无效chard_uid;/*用户标识,为0时表示是超级*/chard_gid;/*同组用户标识*/chard_name[8];/*用户名,但不超过八个字节,超过八位自动截取*/charpassword[8];/*用户密码但不超过八位,超过八位自动截取*/};目录文件结点信息存储结构:structdir{unsignedshortd

5、_mode;//文件属性及访问权限,<=0时为空结构chard_uid;//文件主标识chard_gid;//文件主同组用户标识intd_fsize;//文件大小(字节),作为目录结构时为该目录下文件个数chard_name[8];//文件名intd_add[10];//存放文件信息的空间地址(块号)};Fcb在内存中的结构:structSFcb{charf_count;/*文件访问计数*/charf_flag;/*标志字*/intf_blkno;/*存放本文件目录结构的块号*/intf_number;/*文件目录结构所在块内偏移序号*/

6、unsignedshortf_mode;/*文件属性*//*以下各项信息在文件打开时从structdir获取*/charf_uid;charf_gid;intf_fsize;charf_name[8];intf_add[10];};文件目录存储位置存储结构:structHfcb//用于Namei函数,返回文件目录结构存储位置{intblkno;//存放本文件目录结构的块号intoffset;//文件目录结构所在块内偏移序号};打开文件结构:structHOFile{charo_flag;//标志字into_count;//访问计数stru

7、ctSFcb*o_fcbp;//对就打开文件FCB结构指针into_offset;//文件当前读/写指针};内存中的用户结点结构:structTUser{charu_name[8];//用户名,登录时使用charu_uid;//用户标识,文件创建时的文件主charu_gid;//同组用户标识structSFcb*u_cdir;//现行工作目录标识intu_error;//执行文件管理函数时返回的错误代码,创建文件时被用来存储文件设置char*u_base;//读/写文件时信息存储区始址intu_count;//读/写文件时信息字节数int

8、u_offset;//读/写文件的相对位移量charu_obuf[8];//文件路径名分量暂存区(查找文件时用)structSFcb*u_pdir;//新文件父目录FCB指针(文件创建时用)s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。