文件的逻辑结构就是用户所看到的文件的组织形式。
文件划分为三类逻辑结构:无结构的字符流式文件、定长记录文件和不定长记录文件构成的记录树。
定长记录文件和不定长文件可以统称为记录式文件。
流式文件是有序字符的集合,其长度为该文件所包含的字符个数,所以又称为字符流文件。
源程序、目标代码等文件属于流式文件。UNIX内系统采用流式文件结构。
定长记录文件:各个记录长度相等。在检索时,可以根据记录号i及记录长度L就可以确定该记录的逻辑地址。
不定长记录文件:各个记录的长度不等,在查找时,逐条查找,直到找到所需要的记录。
顺序结构又称为连续结构,这是一种最简单的文件物理结构,他把逻辑上连续的文件信息依次存放在连续编号的物理快中。
在顺序结构中,一个文件的目录项中只要指出该文件占据的总块数和起始块号即可。
优点:只要是知道了文件在文件存储设备上的起始块号和文件长度,就能很快地进行存取。
缺点:文件不能动态增长。
为每个文件构造所使用的磁盘块的链表。使用这种链接结构的文件,将逻辑上连续的文件分散存放在若干个不连续的物理块中。
间接索引是在索引表所指的物理快中不存放在文件信息,而是装有存在这些信息的物理快地址。
在索引结构文件中要存取文件时,需要至少访问存储设备两次以上,其中,一次是访问索引表,另一次是根据索引表访问在存储设备上的文件信息。
索引表的链接模式:一个索引表通常就是一个物理盘快。对大文件就用多个索引连接在一起。
多级索引:将一个大文件的所有索引表(二级索引)的地址存放在另一个索引表(一级索引)中。
基本思想:给每个文件赋予一张称为I节点的小表,在这张小表中列出了文件属性及文件中个块在磁盘上的地址。
文件数据盘快,称为直接盘快。
该索引指向文件数据盘快,称为一重间接盘快。
二级索引表,称为二重间接盘快。
三级索引表,称为三重间接盘快。
用户对外存设备的要求是:方便、效率、安全。
磁盘是典型的随机存储设备。
磁盘一般由若干个磁盘片组成,每个磁盘片对应两个读写磁头,分别对磁盘片的上下两面进行读写。各个磁头与磁头臂之间相连。系统在对磁盘初始化时,将盘片上划分出一些同心圆,作为存储信息的介质,称为磁道。对每个磁道又分为若干段,称为扇区。每个扇区就构成了一个物理快,整个磁盘上所有扇区(物理块)统一编号,从零开始,所有磁盘片的相同磁道称为柱面。
磁盘上每个物理快的位置可用柱面号、磁头号、扇区号。
磁头臂只能沿半径方向移动。在访问磁盘时,首先要把磁头臂移动到相应柱面的磁道上,称为寻道。然后等待盘片旋转,使指定的扇区转到磁头之下,实现了对磁道和扇区的定位。最后控制磁头对扇区中的数据进行读写。
一次访问磁盘的时间由寻道时间、旋转定位时间和数据传输时间所组成,寻道时间是机械动作的时间,因而需要花费的时间最长。
在用户面前,文件的呈现方式是文件的物理结构,在存储介质面前,文件呈现的是文件的物理结构,这与文件所使用的存储介质的特性有关。
哪一种文件的存取方式,取决于用户使用文件的方式,也与文件所使用的存储介质有关。数据库文件,就适合采用随机存储的方法。而如果存储介质采用的是磁带,就只能采用顺序存储。
顺序存储就是从前往后的依次访问文件的各个信息项。 若当前读取的记录为R,则下一次读取的记录被自动的确定为Ri+1.
随机存取又称为直接存取,即允许用户按任意的次序直接存取文件中的任意一个记录,或者根据存储命令把读写指针移到文件的指定记录处读写。