• 文件系统(III)


    文件系统的实现:

    要注意磁盘上与内存中内容布局

    名词:

    磁盘分区:把一个物理磁盘存储空间划分成几个相互独立的部分称为分区

    文件卷:磁盘上的逻辑分区,由一个或多个物理块(簇)组成,文件卷可以为整个磁盘或部分分区甚至几个磁盘(跨盘)

    文件卷的几个区域:

    ①引导区(每卷一个)

    可以从该区引导存在于该分区的操作系统(如果有)

    ②卷信息

    卷的块数,块的大小,空闲块数量和指针,空闲FCB数量和指针,这些都为元数据

    ③目录文件(管理文件

    ④用户文件

    文件卷的几个要点:

    1.同一个文件卷使用同一份管理数据进行文件分配和磁盘空间管理

    2.不同文件卷管理数据是相互独立的

    3.文件卷包含文件系统信息文件(普通文件,目录文件)未分配空间

    一般,磁盘中块的大小 = 一个或者2的幂个扇区

    格式化:在文件卷上建立文件系统即建立并初始化用于文件分配和磁盘分配和磁盘空闲空间管理的管理数据

    磁盘布局:

    内存中数据结构:

    系统打开文件表

    i.整个系统一张

    ii.放在内存中:用于保存已打开文件的FCB

    表项结构:

    用户打开文件表

    i.每个进程一张

    i.进程PCB中记录了用户打开文件表的位置,为什么PCB中不记录FCB?因为FCB已经在系统打开文件表中记录了

    表项结构:

    文件目录检查:

    给出全路径和相对路径来访问一个文件

    目录项分解法(加快目录检索):

    方法:把FCB(FCB可以理解成目录项)分成两部分

    一部分:符号目录项文件名,文件号就是i节点作用)

    另一部分:基本目录项除文件名外所有字段,含有文件号)例如unix i-node

    目录项分解法如何提升检索速度?

    分解前:

    所需物理块数 = 128(目录项数) * 48(FCB理解成目录项大小)/512(物理块大小) = 13块

    平均访盘次数最好就是第一块就访问到,最差到13块访问到,平均为(1 +13) /2 = 7次

    分解后:

    符号目录文件所需物理块数 = 128 (原来目录项数量变成符号目录项数量)* 8(符号目录项大小)/512(物理块大小) = 2块

    基本目录文件所需物理块 = 128(FCB一分为二数目相等,但目录项数量和基本目录项数量项等)* 42 (基本目录项大小)/512 = 11块;

    平均访盘次数现在只要找符号目录项即可(最好1 + 最差2)/2 = 1.5 + 通过文件号(就是i节点号作用)到基本目录项寻找文件起始物理块号1次 = 2.5次

     

    Unix中:

    FCB =  目录项(文件名,i节点号(就像符号目录项中文件名和文件号)) + i节点

    应用:

     

     作者水平有限,文章肯定有错还请各位指点!!!感谢!!!

                                                            

  • 相关阅读:
    018_STM32程序移植之_串口接收中文
    003_软件安装之_Visual Studio 2012
    001_C#我的第一个串口上位机软件
    017_STM32程序移植之_AS608指纹模块
    016_STM32程序移植之_舵机
    015_STM32程序移植之_NRF24L01模块
    014_STM32程序移植之_L298N电机驱动模块
    002_89C52_Proteus_DAC0832_输出50HZ,正弦波,三角波,矩形波,锯齿波
    001_89C52之_Proteus_ADC0809采集电压
    001_电子工程师招聘笔试题及详细解析
  • 原文地址:https://www.cnblogs.com/chaunceyctx/p/6875524.html
Copyright © 2020-2023  润新知