操作系统--文件系统设计精要.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统--文件系统设计精要

文件价系统设计 班级: 软件四班 组长:XXXX 这是我根据网上的文件系统实现代码和课本设计的文件系统。 一、文件类型: 正规文件:存储用户和系统中数据、程序的文件。 目录文件:存储目录信息的文件。 设备文件:各种外部设备看成是文件。 二、文件系统的数据结构 1. 文件卷及其组成 文件卷由大小相等的物理块组成,物理块大小512字节,i节点大小32字节,每个物理块可存放16个i节点,共1702个物理快,则共1600个数据块,100*16=1600个i节点。 块0 块1 块2 …. 块k+1 块k+2 …. 块n 引导块管理块i节点……..i节点数据块…….数据块 块1:存放物理块的使用情况,每个区域的大小等。 i节点:存放文件的说明信息,每个i节点占用32B,每个物理块可存放16个i节点。 数据块:存放文件的数据 2. i节点的数据结构 typedef struct { short inum; // 文件i节点号 char file_name[10]; // 文件名 char type; // 文件类型 char user_name[10]; // 文件所有者 short iparent; // 父目录的i节点号 short length; // 文件长度 short address[2]; // 存放文件的地址,对应两个数据块 } Inode; 3.用户的数据结构 typedef struct { char user_name[10]; // 用户名 char password[10]; // 密码 } User; 4.文件存取控制表 文件名Hello 文件主RWE 文件组RW 其他用户R 5.打开文件表 typedef struct { short inum; // i节点号 char file_name[10]; // 文件名 short mode; // 读写模式(1:read, 2:write, // 3:read and write) } File_table; 6. 文件的目录结构 树状目录结构 根目录 用户A 用户B 用户C 子目录 子目录 子目录 7. 目录文件 文件目录表由多个目录项组成。 struct direct { short inum; // i节点号 char file_name[10]; // 文件名 } 文件1i节点号文件2i节点号 8.文件物理结构 : 文件索引表: 目录文件 结合6,7,8就可以看出文件的索引结构:例如:\a\ab.txt 块2: \目录的i节点 。。。 块4:目录a的i节点 。。。  块10:ab.txt文件的i节点 。。。。。 数据块 。。。。。。。。。 四、外存空间的管理 位示图: 用若干字节构成一张表,每一个字位对应一个物理块,当字位为’1’表示已占用,当字位为’0’表示未占用。 0 1 2 3 4 .。。。 1 1 1  0 1 .。。。。 五、流程图 总体工作流程: 开始 文件系统是否建立? 在内存中申请内存空间 将磁盘上的文件读入内存 Y N 用户登录模块,输入用户名和密码,可以 在程序中设定,不用保存在文件系统中 用户名、密码对吗? 执行init(),进行初始化 操作,进入用户子目录 执行command(),对用户输入的命令进行解析和 执行。若数据被修改或新建立,则保存主存i节 点和数据块的内容到内存的文件系统,并写回磁 盘,保存修改。若输入错误命令则显示出错信息。 退出用户(logout)吗? 用户输入quit吗? 结束 执行format(), 建立文件系统 N N N Y Y Y open())流程图: 开始 在

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档