文件的逻辑结构
设计文件逻辑结构的原则
- 易于操作
- 查找快捷
- 修改方便
- 空间紧凑
文件的逻辑结构
文件的逻辑结构就是用户所看到的文件的组织形式。
文件划分为三类逻辑结构:无结构的字符流式文件、定长记录文件和不定长记录文件构成的记录树。
定长记录文件和不定长文件可以统称为记录式文件。
流式文件
流式文件是有序字符的集合,其长度为该文件所包含的字符个数,所以又称为字符流文件。
源程序、目标代码等文件属于流式文件。UNIX内系统采用流式文件结构。
记录式文件
定长记录文件:各个记录长度相等。在检索时,可以根据记录号i及记录长度L就可以确定该记录的逻辑地址。
不定长记录文件:各个记录的长度不等,在查找时,逐条查找,直到找到所需要的记录。
文件的物理结构
顺序结构
顺序结构原理
顺序结构又称为连续结构,这是一种最简单的文件物理结构,他把逻辑上连续的文件信息依次存放在连续编号的物理快中。
在顺序结构中,一个文件的目录项中只要指出该文件占据的总块数和起始块号即可。
顺序结构的优缺点
优点:只要是知道了文件在文件存储设备上的起始块号和文件长度,就能很快地进行存取。
缺点:文件不能动态增长。
链接结构
链接结构原理
为每个文件构造所使用的磁盘块的链表。使用这种链接结构的文件,将逻辑上连续的文件分散存放在若干个不连续的物理块中。
间接索引是在索引表所指的物理快中不存放在文件信息,而是装有存在这些信息的物理快地址。
在索引结构文件中要存取文件时,需要至少访问存储设备两次以上,其中,一次是访问索引表,另一次是根据索引表访问在存储设备上的文件信息。
索引表的链接模式:一个索引表通常就是一个物理盘快。对大文件就用多个索引连接在一起。
多级索引:将一个大文件的所有索引表(二级索引)的地址存放在另一个索引表(一级索引)中。
索引结构的示例–I节点
基本思想:给每个文件赋予一张称为I节点的小表,在这张小表中列出了文件属性及文件中个块在磁盘上的地址。
文件数据盘快,称为直接盘快。
该索引指向文件数据盘快,称为一重间接盘快。
二级索引表,称为二重间接盘快。
三级索引表,称为三重间接盘快。
文件的存储介质
存储介质的特点
- 外存储设备同内存相比较,一般有容量大、断电后仍可保存信息、速度快慢、成本较低等特点。
- 外存储设备通常由驱动部分和存储介质两部分组成。存储介质又常称为卷。
- 驱动器的作用是是计算机能够实现读写(及保存、控制、测试)存储介质上的内容。
- 存储设备有很多种类。如磁盘、磁带、磁鼓、纸带、光盘和内存等。一个计算机系统中可同时连接说中存储设备。
- 磁盘空间由盘面、柱面、磁道和扇区组成。
- 外存设备存取的过程大致由:读状态-》置数据-》置地址-》置控制-》读状态。
用户对外存储设备的要求
用户对外存设备的要求是:方便、效率、安全。
- 在读写外存储设备时不涉及硬件细节,用户直接使用逻辑地址和逻辑操作。
- 外存储设备存取速度尽可能快,容量大切空间利用率高。
- 外存储设备上存放的信息安全可靠,防止来自硬件的故障和他人的侵权。
- 可以方便的共享,存储空间可以动态扩大、缩小,携带,拆卸便捷,可随时了解存储设备及使用情况。
- 以尽可能小的代价完成上述要求。
文件在存储设备中的存取
顺序存储设备
- 磁带就是典型的顺序存储介质。
- 优点:存储容量大;
- 缺点:存取速度比较慢。
随机存取设备
磁盘是典型的随机存储设备。
磁盘一般由若干个磁盘片组成,每个磁盘片对应两个读写磁头,分别对磁盘片的上下两面进行读写。各个磁头与磁头臂之间相连。系统在对磁盘初始化时,将盘片上划分出一些同心圆,作为存储信息的介质,称为磁道。对每个磁道又分为若干段,称为扇区。每个扇区就构成了一个物理快,整个磁盘上所有扇区(物理块)统一编号,从零开始,所有磁盘片的相同磁道称为柱面。
磁盘上每个物理快的位置可用柱面号、磁头号、扇区号。
- 已知物理号,则磁盘地址:
- 柱面号 = [ 物理块号/(磁头数 X 扇区数) ]
- 磁头号 = [(物理块号 mod (磁头数 X 扇区数)) / 扇区数]
- 扇区号 = (物理块号 mod (磁头数 X 扇区数)) mod 扇区数
- 已知磁盘地址:
- 物理块号 = 柱面号 X(磁头数 X 扇区数)+ 磁头号 X 扇区数 + 扇区号。
磁头臂只能沿半径方向移动。在访问磁盘时,首先要把磁头臂移动到相应柱面的磁道上,称为寻道。然后等待盘片旋转,使指定的扇区转到磁头之下,实现了对磁道和扇区的定位。最后控制磁头对扇区中的数据进行读写。
一次访问磁盘的时间由寻道时间、旋转定位时间和数据传输时间所组成,寻道时间是机械动作的时间,因而需要花费的时间最长。
文件的存储方式
在用户面前,文件的呈现方式是文件的物理结构,在存储介质面前,文件呈现的是文件的物理结构,这与文件所使用的存储介质的特性有关。
哪一种文件的存取方式,取决于用户使用文件的方式,也与文件所使用的存储介质有关。数据库文件,就适合采用随机存储的方法。而如果存储介质采用的是磁带,就只能采用顺序存储。
顺序存储
顺序存储就是从前往后的依次访问文件的各个信息项。 若当前读取的记录为R,则下一次读取的记录被自动的确定为Ri+1.
随机存储
随机存取又称为直接存取,即允许用户按任意的次序直接存取文件中的任意一个记录,或者根据存储命令把读写指针移到文件的指定记录处读写。