【操作系统】文件系统(一):文件的存储介质及结构

·  阅读 575

技术是开源的,知识是共享的。

1 文件与文件系统

1.1 基本概念

文件实际上是对磁盘的抽象,是指一组带标识(即文件名)的、在逻辑上有完整意义的信息项的序列

信息项:是构成文件内容的基本单位(单个或多个字节),各信息项之间具有顺序关系。

文件系统是操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用。主要作用有:

  • 统一管理磁盘空间,实施磁盘空间的分配回收
  • 实现文件的按名存取
  • 实现文件信息的共享,并提供文件的保护、保密手段
  • 提供与I/O系统的统一接口

表1-1 文件的分类

类别描述
普通文件(regular)包含了用户的信息
目录文件(directory)管理文件系统的系统文件
特殊文件(special file)字符设备文件:和输入输出有关,如打印机、网卡等;块设备文件:磁盘

1.2 文件的逻辑结构与文件存取

1.2.1 文件的逻辑结构

流式文件:构成文件的基本单位是字符。文件是有逻辑意义、无结构的一串字符的集合。
记录式文件:文件由若干个记录组成,可以按记录进行读、写、查找等操作。每条记录都有其内部结构。
此外还有树形结构、堆结构、顺序结构、索引结构等。

1.2.2 文件存取

包括顺序访问和随机访问(该方式需要提供读写位置)。

2 文件的存储介质

2.1 存储介质与物理块

存储介质主要包括磁盘(包括固态硬盘SSD)、磁带、U盘、光盘等。
物理块(块block、簇cluster)是信息存储、传输、分配的独立单位。存储设备被划分为大小相等的物理块,统一编号。

2.2 磁盘的典型结构

每个磁盘包含一个盘面,盘面上有很多个同心圆,称之为磁道,每个磁道上有若干个圆弧称之为扇区。每个盘面上都有唯一的一个读写磁头,该磁头沿半径方向运动。
任何时刻只有一个磁头处于活动状态并且输入输出的数据流以位串的形式出现。
磁盘中的物理地址有三部分组成:磁头号(盘面号)、磁道号(柱面号)、扇区号
每个扇区包含三部分内容**:标题、数据、校验信息**。
在这里插入图片描述

2.3 磁盘访问

每次磁盘请求有三个步骤组成(SSD只有第三步):
1、寻道时间:磁头移动定位到指定磁道;
2、旋转延迟时间:等待指定扇区从磁头下旋转经过;
3、数据传输时间:数据在磁盘与内存之间的实际传输。

3 磁盘空间管理

3.1 相关数据结构

1 位图

  • 用一串二进制位反映磁盘空间中分配使用情况,每个物理块对应一位,已被分配的物理块为0,否则为0;
  • 申请物理块时,可以在位图中查找为1的位,返回对应的物理块号并同时将对应位修改成0;归还时将对应位置1。
    2 空闲块表
    将所有的空闲块记录在一个表中,即空闲块表。表中主要记录两项内容:起始块号,块数。
    3 空闲块链表
    把所有空闲块链成一个链。为了防止链过多,可以用成组链接法。

3.2 磁盘地址和块号的转换

已知块号,则磁盘地址:

柱面号=[块号/(磁头数扇区数)]
磁头号=[(块号mod(磁头数
扇区数))/扇区数]
扇区号=(块号mod(磁头数*扇区数))mod扇区数

已知磁盘地址:

块号=柱面号*(磁头数扇区数)+磁头号扇区数+扇区号

当采用位图的数据结构时:

已知字号i、位号j:块号=i*字长+j
已知块号:字号=[块号/字长] 位号=块号mod 字长

4 文件控制块及文件目录

4.1 文件属性

文件属性,又称为文件控制块(File Control Block),是为管理文件而设置的数据结构,保存管理文件所需的所有有关信息。主要包括文件名、文件大小、文件地址、创建时间、最后修改时间、各种标志(只读、隐藏、系统、归档)等。

4.2 文件目录、目录文件与目录项

文件目录
统一管理每个文件的元数据以支持文件名到文件物理地址的转换;将所有文件的管理信息组织在一起,即构成文件目录。
目录文件
将文件目录以文件的形式存放在磁盘上。
目录项
目录项是构成文件目录的基本单元,可以是FCB,目录是文件控制块的有序集合

4.3 与目录相关的概念

路径名(文件名)
绝对路径名:从根目录开始
相对路径名:从当前目录开始

5 文件的物理结构

5.1 连续结构

文件信息存放在若干连续的物理块中。
优点
支持顺序存取和随机存取;所需的磁盘寻道次数和寻道时间最少
缺点
文件不能动态增长;不利于文件的插入和删除;容易造成外部碎片。

5.2 链接结构

5.2.1 概念

一个文件的信息存放在若干不连续的物理块中,各块之间通过指针连接,前一个物理块指向下一个物理块。
优点
提高了磁盘空间利用率;有利于文件插入和删除;有利于文件动态扩充
缺点
存取速度慢,不适于随机存取;有可靠性问题,如指针出错;需要更多的寻道次数和寻道时间;链接指针还需要占用一定的空间

5.2.2 链接结构的一种变形——文件分配表FAT

将所有的物理块放在统一的表中,称为文件分配表,表中记录了所有物理块的块号及对应的表项的值:0表示是空的物理块,正整数表示下一块块号,-1表示这个是该文件的最后一块。

5.3 索引结构

5.3.1 概念

一个文件的信息存放在若干个不连续的物理块中,系统为每个文件建立一个专用数据结构——索引表,并将这些物理块的块号存放在该索引表中。索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块。

5.3.2 索引表的组织方式

链接方式
一个盘块存放一个索引表,多个索引表链接起来
多级索引方式
将文件的索引表地址放在另一个索引表中
综合模式
直接索引方式与间接索引方式结合

5.3.3 Unix的三级索引结构

1、每个文件的主索引表有15个索引项(FCB中),每项2个字节;
2、前12项直接存放文件的物理块号(直接寻址);
3、如果文件大于12块,则利用第13项指向一个物理块,在该块中存放的是一级索引表;

假设扇区大小是512个字节,物理块等于扇区的大小,则一级索引表可以存放256个物理块号

4、对于更大的文件还可利用第14和第15项作为二级和三级索引表。
故Unix的三级索引结构最多可以容纳12+256+2562+2563个块

6 文件系统的实现

6.1 相关术语

磁盘分区(partition) :把一个物理磁盘的存储空间划分为几个相互独立的部分,称为分区。
文件卷(volume) :磁盘上的逻辑分区,由一个或多个物理块组成。

一个文件卷可以是整个磁盘或者部分磁盘或者跨盘(RAID)。
同一个文件卷中使用同一份管理数据进行文件分配和磁盘空间管理。
一个文件卷上包括:文件系统信息、一组文件(用户文件、目录文件)、未分配空间。
块(Block)或簇(Cluster):一个或多个(2的幂)联系的扇区,可寻址数据块。

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

6.2 磁盘上的内容

表6-1 磁盘内容

分区说明
引导区包括了从该卷引导操作系统所需要的信息,每个卷一个,通常为第一个扇区
卷信息包括该卷的块(簇)数、块(簇)大小、空闲块(簇)数量和指针等
目录文件根目录文件和其它目录文件
用户文件

6.3 内存中所需的数据结构——以Unix为例

在这里插入图片描述

7 文件系统的实例——Unix

7.1文件目录检索

访问一个文件有两个步骤组成:
1 目录检索
用户给出文件名–>按文件名查找到目录项FCB

根据路径名检索:
全路径名:从根开始 \A\B\C\File1
相对路径:从当前目录开始 C\File1

2 文件寻址
根据目录项/FCB中文件物理地址等信息,计算出文件中任意记录或字符在存储介质上的地址。

7.2 Unix的文件系统

1 构成
Unix系统中,每个文件由一个目录项、一个i节点和若干个磁盘块组成。目录文件是由目录项构成的。
在这里插入图片描述
2 查找文件的流程
在这里插入图片描述

分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改