6 文件 磁盘管理

 

文件管理:把所管理的程序和数据组织成一系列的文件,并能进行合理的存储、使用等操作。
 

文件的逻辑结构:

无结构:字符流的形式(流文件

有结构:由相关记录组成(记录型文件 

有结构文件又分为:顺序文件、索引文件、索引顺序文件

文件的物理结构:

用文件的存储方式分类:顺序结构;链接式结构;索引式结构。

外存分配方式:

1)连续分配

为每一个文件分配一组相邻的盘块。 逻辑文件中的记录顺序与存储器中文件占用盘块的顺序一致。

优点:顺序访问容易,读写速度快

缺点: 会产生外存碎片。可紧凑法弥补,但需要额外的空间,和内存紧凑相比更花时间。

创建文件时要给出文件大小;存储空间利用率不高,不利于文件的动态增加和修改;

适用于变化不大顺序访问的文件,在流行的UNIX系统中仍保留了连续文件结构。如对换区

2)链接分配(不连续)

隐式链接:链接信息隐含记录在盘块数据中; 每个盘块拿出若干字节,记录指向下一盘块号的指针。

问题:只能顺着盘块读取,可靠性低

显式链接(FAT表):记录盘块链接的指针显示地记录为一张链接表 所有已分配的盘块号都记录在其中,称文件分配表

为了提高文件系统访问速度,FAT一般常驻内存

例题:

6 文件 磁盘管理_第1张图片

3)索引分配:

每个文件单独建索引表(物理盘块索引),记录所有分配给它的盘块号; 建立文件时,便分配一定的外存空间用于存放文件盘块索引表信息;

①单级索引分配

②多级索引

③混合组织索引

一个索引结点定义为13个地址项:iaddr(0)~iaddr(12),总的来说分为两种:直接地址、间接地址 iaddr(0)~iaddr(9)存放直接地址,即存文件数据的盘块号; iaddr(10)存放单级索引的索引盘块号; 剩余的用于文件较大时存放多级索引数据。 iaddr(11)存放二级索引的主索引盘块号 iaddr(12)存放三级索引的主索引盘块号

存储空间的管理 

1)空闲表法和空闲链表法

6 文件 磁盘管理_第2张图片

空闲链表法之空闲盘块链:

将磁盘上的所有空闲空间,以盘块为单位拉成一条链。

6 文件 磁盘管理_第3张图片

空闲盘区链:

分配通常采用首次适应算法。回收盘区时,将回收区与相邻的空闲盘区相合并。 为提高检索速度,可以采用显式方法,为空闲盘区建立一张链表放在内存中。

6 文件 磁盘管理_第4张图片

2)位示图法

磁盘上的所有盘块都有一个二进制位与之对应,这样由所有盘块所对应的位构成一个集合,称为位示图。

相关计算:

顺序扫描位示图。找到为0的二进制位。 将所找到的一个或一组二进制位,转换成与之对应的盘块号。进行分配操作。 盘块号计算公式为:盘块号 = 列总数*(i-1)+ j; (注意下标i,j从1开始) 修改位示图。

3)成组链接法

6 文件 磁盘管理_第5张图片

空闲盘块号栈:存100个空闲盘块号,有一个计数指针,记录栈中还有的盘块数量,当取走最后一个盘块时,把最后一个盘块所指向的100个空闲盘块拿到空闲盘块号栈中,当收回大于100个空闲盘块的时候,把100个盘块放到第101个盘块中存贮,把第101个盘块的盘块号放在空闲盘块号栈中。

目录管理:把文件控制块的有序集合称为文件目录

引入索引节点:

文件目录占越大量的盘块,需进行的磁盘读写开销越大。减少实际检索的信息量就减少移动磁头的开销,提高速度; 目录一般是按名检索。而直到找到正确文件前,只关心文件名,不需要其它的文件描述信息,目录中这部分内容的调入不是必须的。

将文件名、文件具体信息分开,使文件描述信息单独形成一个索引结点。

目前常用的目录结构形式有:单级目录、两级目录、多级目录 

文件共享与保护:索引结点、符号链:

硬链接(Hard Link)默认情况下,ln产生硬链接。原文件和连接文件的FCB记录了相同的inode地址。 建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。

符号链接(Symbolic Link)。和win下的快捷方式差不多。包含所链接文件的路径。可链接任意文件或目录,可链接不同文件系统的文件,甚至可以链接不存在的文件,网络文件。

 两种共享方式的比较:

硬链接(基于索引节点):

只能文件链接,不能对目录做硬链接(可能导致du类命令死循环遍历); 只能在同一个文件系统范围内进行,不能跨文件系统。 删除文件时,如果还有其他链接链至该文件,则该文件不能被删除。

软链接(符号链接):

虽然实现起来相对麻烦一些,访问速度相对慢一些,但适用范围和灵活性要大一些。 允许目录链接,允许不同文件系统间进行链接,这两个文件系统可以在同一个计算机上,也可以在不同的计算机上。 被链接文件的删除和符号链接的删除是完全相互独立的(返回“被链接文件不存在”的错误)。

 

你可能感兴趣的:(操作系统)