文件系统课程设计报告.pdfVIP

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

设计时间:2011-1-5至2011-1-7

专业年级:08计科4班:

一.设计目的:

通过操作系统其中一个子系统的设计和实现,掌握Linux文件系统的基本原理、结构

和实现方法,掌握Linux文件系统中文件的建立、打开、读/写、执行、属性等系统调用的

使用,学会设计简单的文件系统并实现一组操作,以及学习文件系统的系统调用命令,提

高对文件系统实现功能的理解和掌握。同时,掌握操作系统设计的方法与技巧,增强系统

软件设计的实际工作能力。

二.设计容:

为LINUX设计一个简单的二级文件系统。本文件系统采用类似DOS系统的文件管理方

式,每次调用该文件系统时,首先申请一定的存空间,然后对该存空间进行分配。将申请

到的空间划分为目录区,文件区;采用位示图进行空间管理,盘块的分配使用显示(FAT

表)的方式。每次调用该文件系统时自动为其分配空间,并将上次操作的结果从硬盘上调

入存;当结束调用时则将操作的结果重新存入硬盘,以便下次调用。(每次使用都会自动搜

索文件系统,以此确定是否是第一次使用;若是则格式化生成文件系统,否则读取已存在

的文件系统。)

三.设计过程

1、实现功能

该系统具备下列功能:

login用户登录logout注销

mkdir/md创建目录rmdir/rd删除目录

cd/cd..修改目录creat创建文件

open打开文件dir显示当前目录和文件

write读文件delete删除文件

close关闭文件

2、添加功能

(1)制作了一个“操作命令符”列表框,说明接下来如何操作,这样有利于更好地阅读、

操作和运行程序,使不懂得程序代码的人也可以运行该程序,更好地理解该程序实

现的功能。

(2)在命令解释层函数cmdexp()里加了一些选择和操作功能,增加程序实现的功能,如

原来程序只有显示当前目录和文件、创建目录和修改目录的功能,把它拓展到系统

所要求的全部功能,并在原有的程序的基础上进行相应的修改,使程序更加完善。

3、设计思路

(1)要将文件存储在磁盘上,必须为之分配相应的存储空间,并对文件存储空间进行管

理,为了简化对文件的访问和共享,还应设置相应的用户文件描述表及文件表。

①文件卷的组织

UNIX中,把每个磁盘(带)看作是一个文件卷,每个文件卷上可存放一个具有独立目

录结构的文件系统。一个文件卷包含许多物理块,并按块号排列如下图:

0#1#2#3#……K#K+1#……N#

其中,0#块用于系统引导或空闲,1#为超级块(superblock),存放文件卷的资源管理

信息,如整个文件卷的盘块数、磁盘索引结点的盘块数、空闲盘块号栈及指针等。2#~K#

存放磁盘索引结点。每个索引结点64B,第K+1#~N#存放文件数据。

②空闲盘块的组织

UNIX采用成组法组织空闲盘块。它将若干个空闲盘块划归一个组,将每组中所有盘块

号存放在其前一组的第一个空闲盘块中,而第一组中所有空闲盘块号放入超级块的空闲盘

块号栈中。

例:超级块表

10910610310095

211208205202

310307304301

③空闲盘块的分配与回收

核要从文件系统中分配一盘块时,先检查超级块空闲盘块号栈是否已上锁。是则调用

sleep睡眠,否则将超级块中空闲盘块栈栈顶盘块号分配出去。

回收时,若空闲盘块号栈未满,直接将回收盘块编号记入空闲盘块号栈中。若回收时

栈已满,须先将栈中的所有空闲盘块号复制到新回收的盘块中,再将新回收盘块的编号作

为新栈的栈底块号进栈。

(2)UNIX中,为了加速对文件目录的查找,将文件名和文件说明分开,由文件说明形成

一个称为索引结点的数据结构,而相应

文档评论(0)

***** + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档