unix文件系统模拟

unix文件系统模拟

ID:799138

大小:243.53 KB

页数:26页

时间:2017-09-05

unix文件系统模拟_第1页
unix文件系统模拟_第2页
unix文件系统模拟_第3页
unix文件系统模拟_第4页
unix文件系统模拟_第5页
资源描述:

《unix文件系统模拟》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、操作系统课程设计说明书题目:一个多用户多级目录结构文件系统设计与实现账户:user208密码:dryish20一、目的通过操作系统内其中一个子系统的设计和实现,掌握操作系统设计的方法与技巧,增强系统软件设计的实际工作能力。二、内容设计并实现一个多用户多级目录结构的文件系统。该系统必须具备下列功能:login用户登录logout用户退出init文件系统初始化目录操作md创建目录rd删除目录cd设置目录文件操作create创建文件delete删除文件open打开文件close关闭文件read读文件write写文件dir列文件目录三、设计思想说明1设计环

2、境课程设计的环境是Linux操作系统。设计时可利用Linux提供的文件管理的功能调用,建立一个模拟的文件系统。基本思想是,在Linux系统中创建一个较大容量的文件,作为所设计的文件系统的“文件卷”,并利用Linux系统的功能调用,l编写各程序模块。2、文件卷的组织以1M的内存空间作为文件空间,空间“分块”,编号为0#~(BLKMAX-1)#。“分块”就是规定对文件卷的读/写以块为单位,每次读/写的起点为块大小的整倍数。分块主要体现在文件卷的读/写模块上。#defineBSIZE512/*512bytes/块*/#defineBLKMAX2048/*

3、共2048块*/0#块的作用:0#块是专用块(超级块)。前半部用于存放文件卷空间的位示图(bitmap),位状态='0'表示对应块空闲,状态='1'表示已分配。后半部的最后32个字节用于存放根目录的目录结构。0#块不参与文件空间的动态分配。1#~(BLKMAX-1)#块用于存放文件(普通文件和子目录文件)的信息。四、数据结构的设计(1)文件目录结构structdir{unsignedshortd-mode;/*文件属性及访问权限*/chard-uid;/*文件主标识*/chard-gid;/*文件主同组用户标识*/intd-fsize;/*文件大小

4、(字节)*/chard-name[8];/*文件名*/intd-add[10];/*存放文件信息的空间地址(块号)*/}#defineDSIZE32/*以上目录结构占用32字节*/按以上述定义,每一块可存放16个目录结构。(2)文件控制块结构structfcb{charf-count;/*文件访问计数*/charf-flag;/*标志字*/intf-blkno;/*存放本文件目录结构的块号*/intf-number;/*文件目录结构所在块内偏移序号*/unsignedshortf-mode;/*文件属性*//*以下各项信息在文件打开时从struct

5、dir获取*/charf-uid;charf-gid;intf-fsize;charf-name[8];intf-add[10];}#defineFCBMAX16structfcbfcb[FCBMAX];/*系统fcb[]结构*/FCB标志字(f-flag)的各种标志定义为:#defineFUPD02/*本FCB代表的文件已修改*/#defineFCHG04/*本FCB结构中某些信息已被修改*/文件属性及文件访问权限(即d-mode和f-mode)定义:#defineIFMT0070000/*文件类型屏蔽字*/#defineIFDIR0010000

6、/*子目录文件*/#defineIFREG0020000/*普通文件*/#defineIREAD0400/*文件主“读”权限*/#defineIWRITE0200/*文件主“写”权限*/#defineIEXEC0100/*文件主“执行”权限*/#defineGREAD040/*同组用户“读”权限*/#defineGWRITE020/*同组用户“写”权限*/#defineGEXEC010/*同组用户“执行”权限*/#defineOREAD04/*其它用户“读”权限*/#defineOWRITE02/*其它用户“写”权限*/#defineOEXEC01

7、/*其它用户“执行”权限*/(3)打开文件结构structofile{charo-flag;/*标志字*/charo-count;/*访问计数*/structfcb*o-fcbp;/*对应打开文件FCB结构指针*/into-offset;/*文件当前读/写指针*/};#defineFILENO10/*文件系统允许打开文件数量*/structofileofile[FILENO];/*系统打开文件表ofile*/标志字o-flag表示的标志定义为:#defineFREAD01/*文件“读打开”标志*/#defineFWRITE02/*文件“写打开”标志

8、*/(4)用户结构structuser{charu-name[12];/*用户名,登录时使用*/charu-uid;/*用

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

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

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