第六章 文件及文件系统 6.3 文件的物理结构
- 为文件分配外存空间时所要考虑的主要问题是: 怎样才能有效地利用外存空间和如何提高对文件的访问速度。
- 目前,常用的外存分配方法有: 连续分配,链接分配,索引分配
一、连续分配
1.要求为每一个文件分配一组相邻接的盘块。
2.把逻辑文件中的数据顺序地存储到物理上邻接的各个数据块中,这样形成的物理文件可以进行顺序存取。(这样的物理文件称为顺序文件)
3.文件分配表中为每个文件建立一个表项,其中记载文件的第一个数据块地址及文件长度。
二、链接分配
1.不要求为整个文件分配一块连续的空间,而是可以将文件装到多个离散的盘块中。
2.将同属于一个文件的多个离散的盘块链接成一个链表(把这样形成的物理文件称为链接文件)
3.隐式链接与显式链接
- 隐式链接
-
- 在文件目录的每个目录项中,都须含有指向链接文件第一个盘块和最后一个盘块的指针。
- 在每个盘块中,都含有指向下一个盘块的指针。
- 它只适合于顺序访问,它对随机访问是极其低效的。(如果要访问文件所在的第i个盘块,则必须先读出文件的第一个盘块……,就这样顺序地查找直至第i块)
- 显式链接
-
- 把用于链接文件各物理块的指针,显式地存放在内存的一张链接表中。
- 整个磁盘仅设置一张文件分配表FAT (File Allocation Table)。
- 每个文件的第一个盘块号,作为文件地址被填入相应文件FCB 的“物理地址”字段中。
- 查找记录的过程是在内存中进行的,因而不仅显著地提高了检索速度,而且大大减少了访问磁盘的次数。
4.问题:
- 不能支持高效的直接存取。要对一个较大的文件进行直接存取,须首先在FAT中顺序地查找许多盘块号。
- FAT需占用较大的内存空间。由于一个文件所占用盘块的盘块号是随机地分布在FAT中的,因而只有将整个FAT 调入内存,才能保证在FAT中找到一个文件的所有盘块号。
三、索引分配
1.单级索引分配
- 为每个文件分配一个索引块(表),用于记录分配给该文件的所有盘块号(索引块也视为数据块的一种,占用一定的磁盘空间)
- 在建立一个文件时,只需在为之建立的目录项中填上指向该索引块的指针
- 索引分配方式支持直接访问,当要读文件的第i个盘块时,可直接从索引块中找到第i个盘块的盘块号; 不会产生外部碎片。
- 可能要花费较多的外存空间。每当建立一个文件时,便须为之分配一个索引块。对于小文件,索引块的利用率低。
2.两级索引分配(利于长作业)
3.增量式索引分配(混合索引方式)
- 索引结点中设有13个地址项:i.addr(0)~i.addr(12) 。
- 三种寻址方式:直接地址,一次间接地址,多次间接地址
分类:
操作系统笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!