操作系统课程设计---一个多用户多级目录结构文件系统设计与实现

操作系统课程设计---一个多用户多级目录结构文件系统设计与实现

ID:9861113

大小:221.00 KB

页数:65页

时间:2018-05-12

操作系统课程设计---一个多用户多级目录结构文件系统设计与实现_第1页
操作系统课程设计---一个多用户多级目录结构文件系统设计与实现_第2页
操作系统课程设计---一个多用户多级目录结构文件系统设计与实现_第3页
操作系统课程设计---一个多用户多级目录结构文件系统设计与实现_第4页
操作系统课程设计---一个多用户多级目录结构文件系统设计与实现_第5页
资源描述:

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

1、操作系统课程设计一个多用户多级目录结构文件系统设计与实现姓名学号班级户头名net15002电话电子邮件地址QQ号源程序所在路径名./filesystem/编译环境Linux运行环境Linux超级用户口令iczj:iczj(用户名:密码)编译方法g++-ofilesystem.outfilesystem.cpp一、设计思想说明1设计环境课程设计的环境是Linux操作系统。设计时可利用Linux提供的文件管理的功能调用,建立一个模拟的文件系统。基本思想是,在Linux系统中创建一个较大容量的文件,作为所设计的文件系统的“文件卷”,并利用L

2、inux系统的功能调用,编写各程序模块。2、文件卷的组织以1M的存储器空间作为文件空间,空间“分块”,编号为0#~(BLKMAX-1)#。“分块”就是规定对文件卷的读/写以块为单位,每次读/写的起点为块大小的整倍数。分块主要体现在文件卷的读/写模块上。#defineBSIZE512/*512bytes/块*/#defineBLKMAX2048/*共2048块*/0#块的作用:0#块是专用块(超级块)。前半部用于存放文件卷空间的位示图(bitmap),位状态='0'表示对应块空闲,状态='1'表示已分配。后半部的最后32个字节用于存放根

3、目录的目录结构。0#块不参与文件空间的动态分配。1#~(BLKMAX-1)#块用于存放文件(普通文件和子目录文件)的信息。二、系统结构的说明本文件管理系统分为五层,上层调用下层,下层为上层服务。以下为各层(由低到高)的简要说明:1、块管理层,通过TBlock类实现设下列主要函数:balloc()--块分配函数brelse()--块释放函数bread()—读一块函数bwrite()—写一块函数2、FCB管理层,通过TFcb类实现功能涉及到FCB结构的操作,定义了一些与FCB操作相关的函数3、打开文件管理层,通过TOFile类实现功能为涉

4、及ofile结构的操作。4、命令解释层,通过TEnter类和TOrder类实现功能为接受来自用户的命令,并解释、执行用户提出的文件访问操作。按系统的的功能要求,可以Open(),Close(),Read(),Write();等函数。三、数据结构的说明用户信息的存储结构:structUserNode//注册用户信息{chard_flag;//标识该用户信息是否有效,超级用户为用户数目,-1表示无效chard_uid;/*用户标识,为0时表示是超级*/chard_gid;/*同组用户标识*/chard_name[8];/*用户名,但不超过

5、八个字节,超过八位自动截取*/charpassword[8];/*用户密码但不超过八位,超过八位自动截取*/};目录文件结点信息存储结构:structdir{unsignedshortd_mode;//文件属性及访问权限,<=0时为空结构chard_uid;//文件主标识chard_gid;//文件主同组用户标识intd_fsize;//文件大小(字节),作为目录结构时为该目录下文件个数chard_name[8];//文件名intd_add[10];//存放文件信息的空间地址(块号)};Fcb在内存中的结构:structSFcb{ch

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

7、存放本文件目录结构的块号intoffset;//文件目录结构所在块内偏移序号};打开文件结构:structHOFile{charo_flag;//标志字into_count;//访问计数structSFcb*o_fcbp;//对就打开文件FCB结构指针into_offset;//文件当前读/写指针};内存中的用户结点结构:structTUser{charu_name[8];//用户名,登录时使用charu_uid;//用户标识,文件创建时的文件主charu_gid;//同组用户标识structSFcb*u_cdir;//现行工作目录标

8、识intu_error;//执行文件管理函数时返回的错误代码,创建文件时被用来存储文件设置char*u_base;//读/写文件时信息存储区始址intu_count;//读/写文件时信息字节数intu_offset;//

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

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

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