知识点讲解
 
       文件的实现
知识路径: > 嵌入式系统软件基础知识 > 嵌入式操作系统基础知识 > 文件系统 > 文件的结构和组织 > 文件系统的实现 > 
被考次数:3次
被考频率: 中频率
总体答错率: 54%
知识难度系数:
考试要求: 掌握     
相关知识点:4个
        文件的实现需要解决两个方面的问题:一是如何来描述一个文件,用什么样的数据结构来记录文件的各种管理信息;二是如何来存储文件,如何把文件的各个连续的逻辑块存放到磁盘的空闲物理块当中,并记录逻辑块与物理块之间的映射关系。
               文件控制块
               文件控制块(File Control Block,FCB)是操作系统为了管理文件而设置的一种数据结构,用于记录与一个文件有关的所有管理信息。FCB是文件存在的标志。
               对于不同的操作系统,它们的文件控制块所包含的内容是各不相同的。一般来说,主要包含两类信息:
               .文件的属性信息:包括文件的类型和长度、文件的所有者、文件的访问权限、文件的创建时间、最后访问时间以及最后修改时间等。
               .文件的存储信息:文件在磁盘上的存放位置,它被存放在哪一些物理块当中。
               文件的物理结构
               文件的物理结构研究的是如何把一个文件存放在磁盘等物理介质上。具体来说,就是以块为单位,研究如何把文件的一个个连续的逻辑块存放在不同的物理块当中,从而建立逻辑块与物理块之间的映射关系。文件的物理结构主要有三种形式:连续结构、链表结构和索引结构。
               (1)连续结构。连续结构也叫顺序结构,它的基本思想是把文件的各个逻辑块按照顺序存放在若干个连续的物理块当中。这种方法的优点是简单、易于实现。对于一个文件,系统只要记住它的第一个物理块的编号和物理块的个数,就可以通过简单的方法来实现从逻辑块到物理块的映射。例如,假设一个文件总共有N个逻辑块,而且第一个逻辑块是存放在第X个物理块当中,那么可以推算出第i个逻辑块是保存在第X+i-1个物理块当中。
               连续结构也有它的缺点。首先,随着磁盘文件的增加和删除,将会形成空闲物理块与占用物理块相互交错的情形,这样,那些比较小的物理块区域就无法再利用,成为外碎片。其次,在连续结构方式下,文件的大小不能动态地增长。
               连续结构主要是用在CD-ROM、DVD等一次性写入的光学存储介质当中。
               (2)链表结构。链表结构的基本思路是:把文件的各个逻辑块依次地存放在若干个物理块当中,这些物理块既可以是连续的,也可以是不连续的。然后在各个块之间通过指针连接起来,前一个物理块指向下一个物理块,从而形成一条链表。在具体实现链表结构时,需要在每一个物理块当中,专门利用若干个字节来作为指针,指向下一个物理块。对于一个文件,系统只要记住它的链表的首结点指针,就可以定位到这个文件中的任何一个物理块。
               链表结构克服了连续结构的缺点。由于不连续的物理块之间可以通过指针连接起来,所以每一个物理块都能够用上,不存在外碎片的问题。而且文件的大小也可以动态地变化。
               链表结构的缺点是:在访问一个文件时,只能顺序地进行访问。例如,为了访问一个文件的第n个逻辑块,文件系统必须从这个文件的第一个物理块开始,按照每一个物理块当中的链表指针,顺序地去遍历前n个块,因此时间比较长。
               为了解决这个问题,人们又对链表结构进行了改进,提出了带有文件分配表的链表结构。它的基本思路是:在链表结构的基础上,把每一个物理块当中的链表指针抽取出来,单独组成一个表格,也就是文件分配表(File Allocation Table,FAT),并把它存放在内存当中。然后,如果要随机地去访问文件的第n个逻辑块,可以先从FAT表中查到相应的物理块地址,然后根据这个地址直接去访问磁盘,这样速度就比较快。
               文件分配表的一种实现方式如下:在整个文件系统中设置一个一维的线性表格,它的表项个数就等于磁盘上物理块的个数,并按照物理块编号的顺序来建立索引。对于系统中的每一个文件,在它的文件控制块中记录了这个文件的第一个物理块的编号X1,然后在FAT表的第X1项中,记录了该文件的第二个物理块编号X2。就这样一直下去,从而形成了一个链表。在链表的最后一个结点中,存放了一个特殊的文件结束的标识。
               下图是文件分配表的一个例子。通过文件1的目录项可以知道,它的第1个逻辑块存放在第1个物理块中。然后去查询FAT表,可以知道,它的第2、第3个逻辑块分别存放在第2、第3个物理块中。在FAT表的第3项是一个特殊的值0xFFFF,表明文件的结束,因此该文件总共有3个块。类似地,文件2也有三个数据块,分别存放在第4、第5和第7个物理块中。
               
               FAT文件分配表的例子
               (3)索引结构。索引结构的基本思路是:把文件当中每一个逻辑块所对应的物理块编号直接记录在这个文件的文件控制块当中,这样的文件控制块称为Ⅰ结点,或索引结点(index node)。这样,对于系统中的每一个文件,都有一个自己的索引结点。通过这个索引结点,就能够直接地实现逻辑块与物理块之间的映射关系。例如,如果要去访问文件的第i个逻辑块,可以先到其索引结点的地址映射表中,查一下第i项的内容,就可以知道相应的物理块编号,然后就可以直接去访问磁盘了。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有