- 为文件分配外存空间时所要考虑的主要问题是: 怎样才能有效地利用外存空间和如何提高对文件的访问速度。
- 目前,常用的外存分配方法有: 连续分配,链接分配,索引分配
一、连续分配
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) 。
- 三种寻址方式:直接地址,一次间接地址,多次间接地址
标签:文件,链接,文件系统,FAT,盘块,索引,6.3,分配 From: https://www.cnblogs.com/05-ReFrain-19/p/17402858.html