计算机操作系统(第四版)之文件管理、磁盘存储器的管理要点梳理


文件管理


在操作系统中增加文件管理功能,专门管理在外存上的文件,并把对文件的存取、共享和保护等手段提供给用户。

文件和文件系统

文件系统的管理功能,是通过把它所管理的程序和数据组织成一系列文件的方法来实现的。

文件系统的层次结构

文件系统的模型可分为三个层次:最底层是对象及其属性,中间层是对对象进行操纵和管理的软件集合,最高层是文件系统提供给用户的接口。

文件的逻辑结构

1)文件的逻辑结构。这是从用户观点出发所观察到的文件组织形式。
2)文件的物理结构,又称为文件的存储结构,这是指系统将文件存储在外存上所形成的存储组织形式,是用户不能看见的。

文件目录

文件共享

文件保护


磁盘存储器


外存的组织方式

文件的物理结构直接与外存的组织方式有关。对于不同的外存组织方式,将形成不同的文件物理结构。目前常用的外存组织方式有:
1)连续组织方式。
2)链接组织方式.
3)索引组织方式。

文件存储空间的管理

为了实现前面任何一种文件组织方式,都需要为文件分配盘块,因此必须知道磁盘上哪些盘块是可用于分配的。故在文件分配磁盘时,除了需要文件分配表外,系统还应为可分配存储空间设置相应的数据结构,即设置一个磁盘分配表,用于记住可供分配的存储空间情况。此外,还应提供对盘块进行分配和回收的手段。不论哪种分配和回收方式,存储空间的基本分配单位都是磁盘块而非字节。

空闲表法和空闲链表法

  1. 空闲表法。
    1)空闲表。
    空闲表法属于连续分配方式,它与内存的动态分配方式雷同。
    即系统也为外存上的所有空闲区建立一张空闲表,每个空闲区对应于一个空闲表项,其中包括表项序号、该空闲区的第一个盘块号、该区的空闲盘块数等信息。再将所有空闲区按其起始盘块号递增的次序排列。
    2)存储空间的分配与回收。
    空闲盘区的分配与内存的动态分配类似,同样是采用首次适应算法、循环首次适应算法等。
    系统在对用户所释放的存储空间进行回收时,也采取类似于内存回收的方法,即要考虑回收区是否与空闲表中插入点的前区和后区相邻接,对相邻接者应予以合并。
    应该说明,在内存分配上,虽然很少采用连续分配方式,然而在外存的管理中,由于这种分配方式具有较高的分配速度,可减少访问磁盘的 I/O 频率,故它在诸多分配方式中仍占有一席之地。例如,在前面所介绍的对换方式中,对对换空间一般都采用连续分配方式。对于文件系统,当文件较小(1~4 个盘块)时,仍采用连续分配方式,为文件分配相邻接的几个盘块;当文件较大时,便采用离散分配方式。另外,对于多媒体文件,为了能减少磁头的寻道时间,也采用连续分配方式。
  2. 空闲链表法。
    1)空闲盘块链。
    这是将磁盘上的所有空闲空间,以盘块为单位拉成一条链。当用户因创建文件而请求分配存储空间时,系统从链首开始,依次摘下适当数目的空闲盘块分配给用户。当用户因删除文件而释放存储空间时,系统将回收的盘块依次插入空闲盘块链的末
    尾。
    2)空闲盘区链。
    这是将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链。在每个盘区上除含有用于指示下一个空闲盘区的指针外,还应有能指明本盘区大小(盘块数)的信息。分配盘区的方法与内存的动态分区分配类似,通常采用首次适应算法。在回收盘区时,同样也要将回收区与相邻接的空闲盘区相合并。

位示图法

  1. 位示图。
    位示图是利用二进制的一位来表示磁盘中一个盘块的使用情况。当其值为“0”时,表示对应的盘块空闲;为“1”时,表示已分配。这样,由所有盘块所对应的位构成一个集合,称为位示图。通常可用 m × n 个位数来构成位示图,并使 m × n 等于磁盘的总块数。位示图也可描述为一个二维数组 map[m, n]。
    这里写图片描述
  2. 盘块的分配。
    根据位示图进行盘块分配时,可分三步进行:
    1)顺序扫描位示图,从中找出一个或一组其值为“0”的二进制位(“0”表示空闲时)。
    2)将所找到的一个或一组二进制位转换成与之相应的盘块号。假定找到的其值为“0”的二进制位位于位示图的第 i 行、第 j 列,则其相应的盘块号应按下式计算:
    b = n * (i - 1) + j;
    式中,n 代表每行的位数。
    3)修改位示图,令 map[i,j] = 1。
  3. 盘块的回收。
    盘块的回收分两步:
    1)将回收盘块的盘块号转换成位示图中的行号 i 和列号 j 。转换公式为:
    i = (b - 1) / n + 1;
    j = (b - 1) % n + 1;
    2)修改位示图。令 map[i,j] = 0。

位示图常用于微型机和小型机中。

成组链接法

空闲表法和空闲链表法都不适用于大型文件系统,因为这会使空闲表或空闲链表太长。在 UNIX 系统中采用的是成组链接法,这是将上述两种方法相结合而形成的一种空闲盘块管理方法,它兼备了上述两种方法的优点而克服了两种方法均有的表太长的缺点。

提高磁盘I/O速度的途径

其中最主要的技术便是磁盘高速缓存。

提高磁盘可靠性的技术

容错技术是通过在系统中设置冗余部件的办法,来提高系统可靠性的一种技术。
磁盘容错技术往往也被人们称为系统容错技术 SFT。可把它分成三个级别:第一级(SFT-I)是低级磁盘容错技术;第二级(SFT-II)是中级磁盘容错技术;第三级是系统容错技术,它基于集群技术实现容错。

数据一致性控制


继续加油~

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值