操作系统中文件存储空间的管理

一、文件存储空间管理的概念

由于文件存储设备是分成若干个大小相等的物理块,并以块为单位来交换信息的,因此,文件存储空间的管理实质上是一个空闲块的组织和管理问题,它包括空闲块组织,空闲块的分配和空闲块的回收等几个问题。

二、文件存储空间管理的方式

1.空闲表法(空闲文件目录)

操作系统为磁盘外存上所有空闲区建立一张空闲表,每个表项对应一个空闲区,空闲表中包含序号、空闲区的第一块号、空闲块的块数等信息。

空闲表法适用于连续文件结构,其分配的方式是,在系统为某个文件分配空闲块时,首先扫描空闲表项,如找到合适的空闲区项,则分配给申请者,并把该项从空闲表中去掉。如果一个空闲区项不能满足申请者的要求,则把空闲表中的另一项满足要求的分区分配给申请者(连续文件结构除外)。如果一个空闲表项所含块数超过申请者要求,则为申请者分配了所要的物理块后,再修改该表项。

2.空闲链表法(自由链表法)

将所有空闲盘区拉成一条空闲链,根据空闲链所有的基本元素不同,可以把链表分成两种形式:空闲盘块链和空闲盘区链。

空闲盘块链是将磁盘上的所有空闲分区,以盘块为单位拉成一条链,当用户创建文件请求分配存储空间时,系统从链首开始,依次摘下适当数目的空闲盘块分配给用户;当用户删除文件时,系统将回收的盘块依次加入到空闲盘块链的末尾。

空闲盘区链是将磁盘上的所有空闲盘区(每个空闲盘区可包含若干个盘块)拉成一条链。在管理的线性表中,每一个表项对应一个空闲区,增加一项存放指向空闲块的指针,将磁盘上的所有空闲区(可包含若干个空闲块)拉成一条链。每个空闲区上除含有用于指示下一个空闲区的指针外,还有本盘区大小(盘块数)的信息。

3.位示图法

本方法利用二进制的一位来表示磁盘中一个盘块的使用情况,磁盘上所有的盘块都有与之对应的一个二进制位。当其值为0时,表示对应的盘块空闲,当其值为1时,表示对应的盘块已经分配。

4.成组链接法

空闲表法和空闲链表由于空闲表太长而不适合大型文件系统的使用。成组链接法是两种方法相结合的一种管理方法,兼备了两种方法的优点而克服了两种方法的缺点。其大致的思想是:把空闲的n个空闲扇区的地址保存在第一个空闲扇区内,其后一个空闲扇区内则保存另一顺序空闲扇区的地址,以此类推,直至所有空闲扇区都予以链接。

以下以UNIX操作系统为例,说明成组链接法的原理。

(1)UNIX操作系统采用索引结构存放文件物理块的地址

在UNIX操作系统中,一个块定义为512bytes,每一个文件对应一个唯一的机内代码,称为i节点,,在文件的i节点中,放有存放文件的物理块号,由对应文件的逻辑字节偏移量计算出逻辑块号后,就可搜索i节点的地址索引结构而得文件的物理块号。

(2)UNIXsystem的i节点中,定义有一个40字节长的字符数组。

由于每个物理块占用3个字节,因此,此字符组最多可以放下13个物理块号。显然,对于大于13个物理块(6.5KB)的文件,i节点中的索引数组将无法存放所有的物理块号。

(3)UNIX系统把文件分为小型、中型、大型和巨型四种。

(4)UNIX系统文件的物理结构如图1

(5)UNIX的空闲块管理也使用类似的方法

看天,看雪,安安静静,不言不语都是好风景。

操作系统中文件存储空间的管理

相关文章:

你感兴趣的文章:

标签云: