操作系统&文件管理之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 多重索引文件结构

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

相关文章推荐

Linux磁盘空闲空间调度管理

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

linux 媒体播放器

http://rpmfusion.org/Configuration/ RPM Fusion free for Fedora 11, 12 and 13 RPM Fusion nonfre...

54款开源服务器软件(内容管理、数据库、电子商务、邮件服务器、文件传输、操作系统、安全、小公司服务

本文逐一介绍了内容管理、数据库、电子商务、邮件服务器、文件传输、操作系统、安全、小公司服务器、服务器日志文件监控和分析、存储、虚拟化、Web服务器、维基/协作及其他方面的开源服务器软件。 据斯坦...

操作系统 第五章 文件管理

本章的考核知识点 :1、文件和文件名;2、文件的存储介质;3、文件的存取方法;4、文件目录;5、文件的逻辑结构;6、文件的物理结构;7、记录的组成与分解;8、存储空间的分配与回收;9、文件操作;10、...

计算机操作系统——文件管理(3)

文件共享与文件保护 文件共享 基于索引结点的共享方式 利用符号链实现文件共享 为使B能共享C的一个文件F,可以由系统创建一个LINK 类型的新文件,也取名为F,...

2015年考研核心考点命题思路解密——操作系统 第2章 进程管理 PV算法 文件打印问题 过桥问题

【解析】按照PV算法“五步曲”,将独木桥的两端分别标记为A和B;可解本题如下: 第一步:找进程 l  方向A到B的行人 l  方向B到A的行人 第二步:找动作 (1).   方向A到B的行人...

理解操作系统4--文件管理疑惑总结

1.文件和文件系统之间的关系 文件系统是操作系统的一个重要组成部分,负责管理系统...
  • a158337
  • a158337
  • 2014年11月11日 21:05
  • 936

操作系统之——文件管理(2)

文件共享 概念 系统应允许多个用户(进程)共享同一份文件。这样,在系统中只需保留该共享文件的一份副本。 基于有向无循环图实现文件共享 在严格的树形结构目录中,每个文件只允许有一个父目录,父目录...

【软件测试】操作系统篇:第三章 文件管理

第三章文件管理1、文件管理的任务与功能任务:把存储、检索、共享和保护文件的手段,提供给操作系统本身和用户,以达到方便用户和提高资源利用率的目的。功能:---分配与管理外存,实现按名存取---提供合适的...

汤子瀛 操作系统整理[6]——第六章 文件管理

第六章  文件管理 文件的“打开”和“关闭”操作 所谓“打开”,是指系统将指名文件的属性(包括该文件在外存上的物理位置)从外存拷贝到内存打开文件表的一个表目中,并将该表目的编号(或称为索引)返回...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:操作系统&文件管理之FCB
举报原因:
原因补充:

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