文件的逻辑结构文件的物理结构连续结构/顺序结构链接结构索引结构UNIX的三级索引结构
文件的逻辑结构从用户角度看文件,由用户的访问方式确定。
逻辑结构:文件内部的数据应该如何组织起来
无结构文件:文件内部的数据就是一系列二进制流或字符流组成,又称 流式文件有结构文件:由一组相似的记录组成,又称 记录式文件。每条记录又有若干个数据项组成。如:数据库表文件。一般来说,每条记录有一个数据项可作为 关键字(作为识别不同记录的 ID)。根据每条记录是否等长,又可分为 定长记录 和 可变长记录。
顺序文件索引文件索引顺序文件
流式文件:构成文件的基本单位是字符(文件是有逻辑、无结构的一串字符串的集合)
记录式文件:文件由若干个记录组成,可以按记录进行读、写、查找等操作(每条记录有其内部结构)
顺序存取(访问)随机存取(访问)
提供读写位置(当前位置),例如:UNIX 的 seek 操作
文件的物理结构文件的物理结构,又称存储结构,指的是文件在存储介质上的存放方式。
主要解决两个问题:
假设一个文件被划分成 N 块,这 N 块在磁盘上是怎么存放的?其地址(块号或簇号)在 FCB 中是怎样记录的?
因为磁盘具有直接访问的特性,所以用磁盘存放文件,有很大的灵活性。
连续结构/顺序结构文件的信息存放在若干连续的物理块中。
优点
简单支持顺序存取和随机存取所需的磁盘寻道次数和寻道时间最少可以同时读入多个块,检索一个块也很容易
缺点
文件不能动态增长(需要为每个文件预留若干物理块以满足文件增长的部分需要)不利于文件插入和删除外部碎片:紧缩技术
链接结构一个文件的信息存放在若干不连续的物理块中,各块之间通过指针连接,前一个物理块指向下一个物理块。
优点
提高磁盘空间利用率,不需要为每个文件预留物理块有利于文件插入和删除有利于文件动态扩充
缺点
存取速度慢,不适于随机存取当物理块间的连接指针出错时,数据丢失更多的寻道次数和寻道时间链接指针占用一定的空间,降低了空间利用率
索引结构
一个文件的信息存放在若干不连续物理块中系统为每个文件建立一个专用数据结构——索引表,并将这些物理块的块号存放在该索引表中索引表就是磁盘块地址数据,其中第 i 个条目指向文件的第 i 块
优缺点:
优点
既能顺序存取,又能随机存取满足了文件动态增长、插入删除的要求能充分利用磁盘空间
缺点
较多的寻道次数和寻道时间索引表本身带来了系统开销,如:内存、磁盘空间、存取时间
UNIX的三级索引结构UNIX 文件系统采用的是多级索引结构(综合模式)
每个文件的祝索引表有 15 个索引项(FCB中),每项 2 个字节前 12 项直接存放文件的物理块号(直接寻址)如果文件大于 12 块,则利用 13 项指向一个物理块,在该块中存放的是一个索引表
假设扇区大小大小为 512 字节,物理块等于扇区块大小,以及索引表可以存放 256 个物理块号。