操作系统原理第十一章 文件系统实现

本科生操作系统原理学习记录
学习记录全家桶

11.1 文件系统

1、文件系统概述

在存储设备上组织文件的方法和数据结构

操作系统中负责管理和存储文件信息的模块

文件系统 大多数存在于操作系统之中,但是一些微内核没有文件系统

系统角度:

  1. 对存储设备的空间进行组织和分配
  2. 负责文件检索、读写等操作
  3. 目标:存取速度和存储空间效率

用户角度:

  1. 提供按名存取的文件访问机制
  2. 文件的组织管理
  3. 目标:方便的文件存取机制

2、文件系统层次架构

基本文件系统

物理块读写

向设备驱动程序发送控制命令

文件组织模块

管理文件、逻辑块和物理块

把文件的逻辑地址转换为物理地址、管理空闲空间、为文件分配物理块

逻辑文件系统

管理文件系统中的元数据:除了文件数据外的所有结构数据

文件按名存取、文件目录管理、管理FCB、存储保护

3、文件系统实现

物理块:一个或多个扇区组成,基本文件读写单位

分区:Partition

卷(逻辑磁盘):Volume,磁盘上的逻辑分区,建立在物理分区上

两种文件系统

  • 磁盘文件系统
  • 内存文件系统

4、磁盘文件系统

5、内存文件系统

分区表:所有安装分区信息

目录缓冲结构:保存最近访问的目录信息

系统打开文件表、进程打开文件表

目的:通过缓冲技术来提高文件系统性能

6、虚拟文件系统

目的:支持多个文件系统

把多个文件系统整合成一个目录结构

为用户屏蔽各个文件系统的差异

虚拟文件系统 VFS

文件系统接口:统一的应用程序访问文件的接口

VFS接口:为各类不同的文件系统定义VFS接口

7、网络文件系统

NFS:节省存储空间、实现共享

访问远程文件系统

8、常用文件系统

Windows:FAT NTFS ReFS

Linux:Ext(Ext2 3 4 )

Mac OS:HFS

11.2 存储空间分配方式

物理块

读写存储设备的基本单位

存储设备的基本分配单位

和内存的页面大小相对应

逻辑块:在文件空间中的块

大小和物理块一致
一个逻辑块存储在一个物理块中

连续分配

每个文件在磁盘上占用一组连续的物理块

FCB仅给出:起始块号和长度

缺点:

浪费空间(小空间无法分配)
文件不能动态增长(文件A)
不利于文件的插入和删除(需要移动数据)

链接分配

离散物理块分配

显示分配、隐式分配

隐式链接:物理块中给出下一个块的指针地址

优点:可以扩展分配,便于文件的插入和删除

缺点:无法实现随机访问,访问文件慢

显示链接:把指针拿出来,集中存在一起

大大提高了检索的速度

FAT表,不适合大容量的磁盘 File Allocation Table,一个分区有两张FAT表

链接表大小:表项16位,就是128KB 表项32位 ,就是16GB

索引分配

分散的FAT,每个文件都给它分配一张FAT表,即索引表

索引块:存放指向文件每个物理块块号的物理块

地址映射:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9PUqUGJX-1641540972514)(E:\文档和PPT\大三课程学习\操作系统\Pictures\第十一章\索引表地址映射.png)]

多级索引

大于4MB的文件,需要用多级索引的方法

联合策略 混合策略

Unix中的iNode

3级索引支持 48KB + 4MB + 4GB + 4 TB,既然你要使用3级索引,那么你前面的直接索引、一级索引、二级索引都使用完了,才会使用3级索引

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ve9W3Khr-1641540972516)(E:\文档和PPT\大三课程学习\操作系统\Pictures\第十一章\混合索引方式.png)]

11.3 空闲空间管理

空闲表

空闲表直接采用类似数组的方式管理

空闲链表

将磁盘中所有空闲块链接在一起

位示图

利用二进制一位 bit来表示一个块的使用情况

1:盘块空闲

0:盘块已分配

学会计算第几行第几列,块号的计算

位示图需要额外的空间

block size = 2^12 bytes

disk size = 2^30 bytes

n = 2^30 / 2^12 = 2^18 bits

位示图存放在物理块中,小容量的磁盘空间管理

成组链接

结合了空闲表和空闲链表

例子:UNIX系统

将空闲块分成若干组,每100个块作为一组

每组第一空闲块包含:

  • 空闲块总数
  • 下一组空闲块首块的地址
  • 本组其他空闲块的块号列表

慕课单元作业

1、一个文件有20个磁盘块(块号:0-19),假设文件控制块在内存(如果文件采用索引分配,索引表不在内存)。在下列情况下,请计算在连续分配,链接分配,单级索引分配三种分配方式下,分别需要多少次磁盘I/O操作?(每读入或写出一个磁盘块需要一次磁盘I/O操作,另外,假设在连续分配方式下,文件头部无空闲的磁盘块,但文件尾部有空闲的磁盘块。
1)在文件开始处删除一个磁盘块;
2)在文件第15块前添加一个磁盘块并写入内容;
3)在文件结尾处删除一个磁盘块;
4)在文件结尾处增加一个磁盘块并写入内容。

(1)连续分配:0次,直接修改FCB的起始块号和长度

​ 链接分配 隐式:1次,先读取第二块的块号,然后修改FCB起始块号

​ 单级索引:2次,读入索引表,并修改索引块中索引项,然后写入磁盘块

(2)连续分配:读取块号14-19,写入15-20块号,还有一个写入新的块,13次

​ 链接分配:隐式:读取前14个块找到指向第15块的指针 14次,新块写入内容和旧的15号的地址,14号块写入新块的地址,一共16次

​ 单级索引:3次,读入索引块内容,修改索引项并写入磁盘块,写入新块的内容

(3)连续分配:0次,直接修改FCB表的长度

​ 链接分配:隐式:20次,前19次读取第二十块的地址,然后修改地址为-1表示第19块为结束块

​ 单级索引:2次,读入索引表,并修改索引块中索引项的内容

(4)连续分配:1次,写入内容,并修改FCB的文件长度

​ 链接分配:隐式:22次,前20次找到第二十块的内容,然后写入新块的内容,最后将第二十块的指针修改为指向新块的地址

​ 单级索引:3次,读入索引块内容,修改索引项并写入磁盘块,写入新块的内容

2、目录文件采用链接式,每个磁盘块存放10个下级文件的描述,最多存放40个下级文件,若下级文件为目录文件,上级目录指向该目录文件的第一块,否则指向普通文件的文件控制块。普通文件采用二级索引形式,文件控制块中给出12个磁盘块地址,前10个磁盘块地址指出前10页的物理地址,第11个磁盘块地址指向一级索引表,一级索引表给出256个磁盘块地址,即指出该文件第10页至第265页的地址,第12个磁盘块地址指向二级索引表,二级索引表中指出256个一级索引表的地址。请问:

‌1)该文件系统中的普通文件最大可有多少页?

‏ 最大 = 10 + 256 + 256*256 = 65802页

‌2)若要读文件/A/D/K/Q中的某一页,最少要启动磁盘几次?最多要启动磁盘几次?(每读一个磁盘块需要启动一次磁盘操作)

最少 最多
内存/->A 0 0
A->D 1 4
D->K 1 4
K->Q 1 4
Q->FCB 1 1
FCB->某一页 1 3
总计 5 16

在这里插入图片描述

3、设想一个在磁盘上的文件系统的逻辑块和物理块的大小都为512B。假设每个文件的FCB已经在内存中,对3种分配方法(连续分配,显式链接分配和单级索引分配),请问:

‏1)逻辑地址到物理地址的映射在系统中如何实现?

‏2)举一个例子说明单级索引分配中,逻辑地址到物理地址的映射过程。

假设逻辑地址为LA,逻辑块和物理块512B为 S,逻辑地址的相对起始地址为G

(1)连续分配:LA/S = Q…R Q为逻辑块号,R为块内偏移

​ B = Q + FCB中记录的起始块号 D = R

​ 物理地址 (B,D)

​ 显示链接:LA/S = Q…R Q为逻辑块号,R为块内偏移

​ B = Q和G得到在链接表中的物理块号 D = R

​ 物理地址 (B,D)

​ 单级索引:LA/S = Q…R Q为逻辑块号,R为块内偏移

​ B = 索引表中第Q项对应的物理块号 D = R

​ 物理地址 (B,D)

(2)举例子说明,假设逻辑地址为1028,文件的索引块内容按照索引如下 6 1 13 -1 -1 -1

则,1028 /512 = 2 …4

查找索引表为13号,则物理地址为 PA = (13, 4)

4、请举一个具体文件系统的例子,来说明文件系统一般由哪些内容组成?

文件系统一般由文件分类、文件目录结构、文件逻辑结构、文件物理结构、储存器管理、系统调用、磁盘结构

例如 : UNIX文件系统,文件分类有普通文件、目录文件、设备文件三种,

文件逻辑结构: 无结构的流式文件,

文件物理结构:多重索引结构,

文件目录结构: 图型目录, 采用硬链接实现文件共享,采用索引节点提高文件访问效率,

文件储存器管理:空闲空间管理:成组链接;

磁盘结构: 物理结构,盘片、磁头、主轴

内存结构: 单进程的打开文件表,系统的打开文件表(包括读写标志、共享该读写指针的进程数、活动节点号,读写指针等)

文件系统调用: 建立文件、删除文件、读文件、打开文件、关闭文件、文件指针定位、文件连结、设置文件权限、建立管道文件、复制文件等函数,实现文件操作和文件保护。

猜你喜欢

转载自blog.csdn.net/weixin_45788387/article/details/122365791