操作系统&文件管理之FCB

原创 2017年09月13日 23:58:39

操作系统的外存(主要指磁盘)管理模块根据各磁盘块的当前状态(磁盘管理程序可配置bitmap数据结构,用来统一表示各磁盘块忙闲情况)可分为两类,一是空闲磁盘块的调度管理,二是已占用了磁盘块的文件管理。本文便讨论已使用了外存存储设备的文件的索引和读取管理。

前面提到操作系统的磁盘管理为了和内存管理配合,也是将磁盘分割为最小单元进行统一调度,和内存的页帧概念对应,磁盘管理模块以磁盘块作为最小单元管理磁盘(常见的磁盘块为1KB,对应2个512B扇区,磁盘块是OS概念,磁盘驱动读取是以扇区作为最小单元)。

FCB (file control block)文件控制块

对于操作系统而言,当任何一个文件存储在本地后,会为了方便后续读取管理,而为每个文件建立专门的用以收集必要属性信息的数据结构,称为FCB(概念借鉴自进程管理模块中的PCB process control block)。将数据结构FCB中的信息收集如下。

这里写图片描述

Fig.1 FCB示意图

在UNIX系统中的FCB的具体实现如下

文件名 扩展名 属性 保留 时间 首块号 大小

文件逻辑结构

按照文件逻辑可分为结构文件(数据表格)和字符流式文件(源程序,dll程序,普通文档)。
对于结构文件,又存在定长记录文件(表格项数目和长度固定)和非定长记录文件(非结构性数据,如每条评论留言,长短不一,当然也可以粗暴地预留足够空间统一规格对待,但是空间利用效率会低)

文件物理结构

结构类型 定义 优点 缺点 其他
连续文件 文件顺序存放在外存的若干个连续物理块中 读取速度快,占用盘块可能处于相连甚至相同的磁道上,故而磁头移动距离较短。 该类占用的磁盘块需要连续成块分配,长期使用会导致较多的磁盘内部碎片,静态分配方式不利于文件长度的动态增删。 常用这种方式来存放频繁使用的程序文件,如boot程序、系统文件经常存放在序号较前的磁盘块连续序列中。
串联文件 该类文件使用的磁盘块不连续,盘块之间通过指针相连,行成串联的队列。 支持文件动态增删,磁盘利用率提高。 文件读取速度低下,磁盘块索引保存方式鲁棒性较差,一旦中间任一磁盘块的指针部分缺损,将导致整个文件无法读取。 指针若是直接埋在个磁盘块中,并没有集中二次处理成查询目录,则称之为隐式连接;若是这些指针统一放置在一张表中(Windows2000以前采用的FAT:file allocation table系统便是采用这种方式),则称为显式连接。每个表项对应一个物理块,存放的指针指向同一文件的逻辑上的下一物理块,这样该FAT表其实还间接地实现了此前提到的bitmap各磁盘块忙闲情况表示功能。当然对于现在的动辄1T的硬盘,其FAT表可不小,想要遍历一次FAT表可能得分批次读入FAT表,性能堪忧,所以现在Windows采用了更好的NTFS文件系统。
索引文件 为每个文件占用的磁盘块建立一张专属的索引表,即文件逻辑块号和物理磁盘块号的对照表。 即实现了磁盘块的动态分配,利于文件长度动态增减,因为索引表的引入故而速度介于连续文件和串联文件之间。 系统需要为每个文件维护一张索引表,系统存在额外开销。 索引表的size显然是和文件size的直接相关的,FBC中便保留了指向该索引表的指针,当然文件如果太大,还是需要多重索引来解决索引表过大的问题。如图2。


Fig.2 多重索引文件结构

版权声明:本文为博主原创文章,未经博主允许不得转载。

操作系统——文件系统

文件是由操作系统来管理的,包括文件的结构、文件的命名、文件的使用、文件的保护和文件的实现等,这些都是在操作系统的设计当中需要解决的问题。总之,在一个操作系统中,负责处理文件相关事宜的部分,就称为文件系...
  • yaoxiaokui
  • yaoxiaokui
  • 2015年02月02日 09:17
  • 1941

linux文件系统中一些重要概念的分析

文件控制块(FCB,File Control Block)linux文件系统使用目录来组织文件。目录也被组织成文件存放在磁盘上,成为目录文件。每个文件都在它属于的目录文件中登记一个文件目录项,这个文件...
  • jarfield
  • jarfield
  • 2008年03月04日 15:44
  • 3205

linux常用命令

目录(?)[+]概述强大好用的SHELL执行命令与查看帮助 man常用系统工作命令echodaterebootwget系统状态检测命令ifconfigunameuptime 查看系统的负载情况fre...
  • u012777806
  • u012777806
  • 2017年05月15日 16:14
  • 159

Windows内部原理(十一):存储和文件系统

  • 2010年01月06日 10:51
  • 10.82MB
  • 下载

索引结点的总结

这需要从目录结构说起。文件目录:包含有关文件的信息,信息主要有:属性,位置,所有权。这些信息主要是由OS进行管理。 目录管理的基本要求:从用户角度看待,目录在用户(应用程序)所需要的文件名和文件之间...
  • u011240016
  • u011240016
  • 2016年10月17日 13:17
  • 1482

理解Linux文件系统之inode

理解inode 作者: 阮一峰 inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。 我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会U...
  • haiross
  • haiross
  • 2014年09月09日 16:47
  • 16410

文件系统实现概念

文件系统永远在外存中,存储大量数据。 文件能够原地改写,即能够读出一块,并修改,再写回。 外存和内存的传输的最小单位为block。 磁盘是随机存储器。 文件系统设计也是分层设计思想。从最底层开始讲起。...
  • qq_32809273
  • qq_32809273
  • 2016年10月18日 21:50
  • 243

操作系统之——磁盘存储器管理

外存的组织方式 文件的物理结构直接与外存的组织方式有关。对于不同的外存组织方式,将形成不同的文件物理结构。 (1) 连续组织方式。 又称连续分配方式,要求为每一个文件分配一组相邻接的盘块。 把...
  • qq_26888929
  • qq_26888929
  • 2016年12月03日 14:39
  • 677

操作系统文件管理可执行源程序

  • 2010年05月05日 23:13
  • 197KB
  • 下载

操作系统文件管理

操作系统文件管理 标签: 生活工作 2011-01-06 18:27 12811人阅读 评论(0) 收藏 举报 分类: 操作系统(4) 数据结构与...
  • yu132563
  • yu132563
  • 2016年06月02日 10:51
  • 496
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:操作系统&文件管理之FCB
举报原因:
原因补充:

(最多只允许输入30个字)