OS-Revision--文件系统

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

27号还有最后一个实验报告要交。
“综合实验二”要实现的是基于C语言的文件系统设计。
那么我们肯定要先了解文件系统概念,架构,功能才行啦。

文件、记录和数据项

这三个概念需要理解一下后面会频繁涉及。

我们用一个班级的概念来形象解释各项的含义。
文件:是指具有文件名的若干相关元素的集合。对应于班级的概念,我们可以把一个文件视为包含所有学生信息的集合体-----正好是一个班级。

记录:一组相关数据项的集合,包含了一个对象的某个方面的属性。对应于上述,我们可以把一个学生视为一条记录。
这其中还有一个概念是“关键字”,表示的是能唯一地表示此条记录的数据项。比如对于某一条“学生记录”,学号就可以成为关键字。

数据项:是最低级的数据组织形式。就比如刚刚说的一条“学生记录”,里面有学号,姓名等等数据项。

文件和文件系统的一些概念

虽然刚刚提到了三个概念,但着重讲的一定是文件,毕竟是“文件系统”呗。
这些也都是一些繁琐的概念,如下图所示:
在这里插入图片描述
上图简单介绍了文件属性,文件按照不同条件可以划分为不同类型。
最后的文件操作可以说极大多数都是接触到过的。

文件系统的架构可以抽象成下图:
在这里插入图片描述
接口距离我们最近,我们接触的也最频繁,如open、close、create……
刚刚只是程序接口,我们还会在终端上运行很多命令。

中间和最下层的内容ppt都没提到,我也忘了老师上课有没有说。
可以简要了解,毕竟怕选择题:

逻辑系统层:处理和记录与文件相关的操作。
基本I/O管理层:完成与磁盘I/O相关操作,我们接触过的将逻辑编号转换为物理块号。
基本文件系统层:内存与磁盘数据交换。
I/O控制层:由磁盘驱动程序构成。

对象及属性管理的内容如下:
文件,不同类型的文件都被管理。
目录。目录项中包含了文件名、文件属性和文件的物理地址信息,方便索引存取。
磁盘存储空间,提高外存利用率,对文件和目录进行存储的分配。

书上讲了一段文件打开的过程。
根据用户需求,将文件从外存调入文件表进行打开并返回用户一个文件表的表号。
这样下次用户只要告知表号,系统自动去打开的表帮查找,就省去了从外存到文件表这个费时操作了。
相当于建立了一条连接,以后就靠连接进行访问。

文件结构

同样内容较多,可以直接看下表:
在这里插入图片描述
就比如一个文件夹是被我们用户所看到且能进行操作的,就是我们感知到的逻辑结构。
如上图所示逻辑结构可以分为有结构和无结构两种类型。
有结构文件说明:在记录式的文件中,每一条记录都描述了一个实体。根据记录的长度又可以分为定长记录和变长记录两种类型!

定长和变长概念是比较容易的。

记录中各数据项长度相同,所有记录中各数据项处于记录的相同的位置。这种结构易检索,方便做处理,数据处理中常用这样的格式。

变长就是不满足定长,虽然格式会不严格很多,但也适用于很多场合(假如医院是一个文件,病人就是一条记录,病因就是其中的一个数据项,显然病因不同,数据长度不同)所以还是得到了广泛应用。

无结构文件可以参照下图:
应该都很好理解,可以稍微记一下我们系统中的典型的无结构文件。
在这里插入图片描述

顺序文件

上上张图展示了有结构文件的组织形式划分。

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

顺序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值