27号还有最后一个实验报告要交。
“综合实验二”要实现的是基于C语言的文件系统设计。
那么我们肯定要先了解文件系统概念,架构,功能才行啦。
文件、记录和数据项
这三个概念需要理解一下后面会频繁涉及。
我们用一个班级的概念来形象解释各项的含义。
文件:是指具有文件名的若干相关元素的集合。对应于班级的概念,我们可以把一个文件视为包含所有学生信息的集合体-----正好是一个班级。
记录:一组相关数据项的集合,包含了一个对象的某个方面的属性。对应于上述,我们可以把一个学生视为一条记录。
这其中还有一个概念是“关键字”,表示的是能唯一地表示此条记录的数据项。比如对于某一条“学生记录”,学号就可以成为关键字。
数据项:是最低级的数据组织形式。就比如刚刚说的一条“学生记录”,里面有学号,姓名等等数据项。
文件和文件系统的一些概念
虽然刚刚提到了三个概念,但着重讲的一定是文件,毕竟是“文件系统”呗。
这些也都是一些繁琐的概念,如下图所示:

上图简单介绍了文件属性,文件按照不同条件可以划分为不同类型。
最后的文件操作可以说极大多数都是接触到过的。
文件系统的架构可以抽象成下图:

接口距离我们最近,我们接触的也最频繁,如open、close、create……
刚刚只是程序接口,我们还会在终端上运行很多命令。
中间和最下层的内容ppt都没提到,我也忘了老师上课有没有说。
可以简要了解,毕竟怕选择题:
逻辑系统层:处理和记录与文件相关的操作。
基本I/O管理层:完成与磁盘I/O相关操作,我们接触过的将逻辑编号转换为物理块号。
基本文件系统层:内存与磁盘数据交换。
I/O控制层:由磁盘驱动程序构成。
对象及属性管理的内容如下:
文件,不同类型的文件都被管理。
目录。目录项中包含了文件名、文件属性和文件的物理地址信息,方便索引存取。
磁盘存储空间,提高外存利用率,对文件和目录进行存储的分配。
书上讲了一段文件打开的过程。
根据用户需求,将文件从外存调入文件表进行打开并返回用户一个文件表的表号。
这样下次用户只要告知表号,系统自动去打开的表帮查找,就省去了从外存到文件表这个费时操作了。
相当于建立了一条连接,以后就靠连接进行访问。
文件结构
同样内容较多,可以直接看下表:

就比如一个文件夹是被我们用户所看到且能进行操作的,就是我们感知到的逻辑结构。
如上图所示逻辑结构可以分为有结构和无结构两种类型。
有结构文件说明:在记录式的文件中,每一条记录都描述了一个实体。根据记录的长度又可以分为定长记录和变长记录两种类型!
定长和变长概念是比较容易的。
记录中各数据项长度相同,所有记录中各数据项处于记录的相同的位置。这种结构易检索,方便做处理,数据处理中常用这样的格式。
变长就是不满足定长,虽然格式会不严格很多,但也适用于很多场合(假如医院是一个文件,病人就是一条记录,病因就是其中的一个数据项,显然病因不同,数据长度不同)所以还是得到了广泛应用。
无结构文件可以参照下图:
应该都很好理解,可以稍微记一下我们系统中的典型的无结构文件。

顺序文件
上上张图展示了有结构文件的组织形式划分。
顺序文件是比较常见的一种组织形式,比较简单易于实现。
顺序文件中的记录按照不同顺序进行排列,其实就是我们说的排序:
1.串结构。记录按存入时间进行排序,与关键字无关。所以我们在检索时基本需要一条一条地往下找,是比较耗时的一种方式。
2.顺序结构。用户指定关键字,按照关键字(如按英文字母顺序排列、按数值大小的升序和降序排列)进行排序。可以利用二分法等优秀的检索算法降低时间复杂度。
顺序

本文详细阐述了文件系统的基础概念,包括文件、记录和数据项,并通过班级比喻进行解释。接着,介绍了文件系统的架构,强调了程序接口的重要性。文章详细讨论了文件的类型、操作和属性,以及文件的逻辑结构,如顺序文件和索引文件,分析了不同文件结构的优缺点。此外,还涵盖了外存分配方式,如连续分配、链接分配和索引分配。最后,提到了文件存储空间管理,包括空闲表法、空闲链表法和位示图法。文章深入浅出,适合对文件系统感兴趣的读者阅读。
最低0.47元/天 解锁文章
291

被折叠的 条评论
为什么被折叠?



