目录
8.OS需要提供的其他文件管理功能- 文件共享283+文件保护255
(1)屏蔽了不同FS的差异和操作细节,为上层用户提供了文件操作
(2)VFS要求下层FS实现基本的函数操作。新加入的FS必须满足该系统中VFS的要求
(3)每打开一个file,VFS会在内存中创建一个vnode,用统一的DS表示文件data。创建vnode的时候会将该文件的属性copy到vnode中,并指向对应FS的函数区
一、整体认知
chap4整体上分为文件、目录、文件系统;此blog根据王道讲课顺序编写,so包括chap5磁盘管理的部分内容
1.文件的定义 250
2.文件的属性 251
3.文件内部应该如何被组织(逻辑结构) 256
4.文件之间应该如何被组织起来(目录结构) 252
5.OS应该向上提供哪些功能 253
6.文件应该如何存放在外存中(物理结构) 258
7.OS如何管理外存中的空闲块(存储空间的管理) 258
8.OS需要提供的其他文件管理功能- 文件共享283+文件保护255
二、文件的逻辑结构 256
1.无结构文件
eg:文本文件 text.txt
2.有结构文件
根据记录长度 分成定长记录 or 变长记录
根据物理上分为顺序存储 or 链式存储 ana ->线性表
(1)顺序文件
顺序存储,根据是否跟kw有关分成串(无关) or 顺序
1)串结构
与kw无关,通常按照时间顺序排列
2)顺序结构(default)
all:是否可随机存取,是否可快速找到kw
(2)索引文件
利用索引表
disa:只能顺序查找,效率低
(3)索引顺序文件
先分组,后索引 ,1:多 -> 1:1
(4)直接文件(散列文件)(Hash File)
根据散列函数进行映射,
disa:可能会冲突
三、文件目录
1.文件目录的实现 252
由FCB、索引结点组成
2.目录结构 280
(1)单级目录结构
只能建立一张目录表
disa:不允许多用户
(2)两级目录结构
两级目录,一级为用户,二级为文件
disa:不能对文件进行分类
(3)多级目录结构(树形)
常用的,现在OS中
disa:I/O次数较多,不便于实现文件共享
可以使用相对path减少I/O读写次数
(4)无环图目录结构
使用共享计数器count表示有多少user使用该文件,当count=0,才删除该文件
3.索引结点 252
FCB优化,索引结点中存在除文件名以外的信息
四、文件的物理结构 258
表示文件在空闲磁盘块上如何分配并记录
1.连续分配
连续分配,用目录表示空闲块
2.链接分配
(1)隐式链接
从一个空闲块开始,依次链接后面的空闲块
(2)显示连接
使用FAT表示,根据文件进行分类,FAT仅记录文件块的初始地址,之后通过链接后面的空块
(3)索引分配
1)单级索引
利用一个索引块表示所有空块,目录中表示索引块是多少号,so查空闲块就找目录即可
disa:大文件索引块太多了(索引块大小有限)
1+)链接方案
将所有索引块链式存储
disa:查找后一个必须前面的全部查完,效率低
2)多级索引
一级一级的
3)混合索引
综合使用,适用小、中、大、特大型文件
五、逻辑 vs 物理
逻辑是给用户看的,物理是OS实际的
六、文件存储空间管理 294
文件存储在disk中,那磁盘中的空闲块如何知道呢?
1.空闲表法
用一个table表示空闲块
2.空闲链表法
链式存储表示
1)空闲盘块链
2)空闲盘区链
第一个表示序号,第二个表示空闲块块数
3.位示图法
用0 1 表示空闲/使用
要求会相互转换,直观上算行列即可,不记公式
4.成组链表法
将空块分成一组一组的,之后多级索引分开
每一号栈中,头部第一块表示这一块有多少空闲块,之后每一块表示空闲块号
第一号栈(空闲块号栈),之后的每一块表示整个disk中所有磁盘块组的头号
5.考点
①位示图法会算位号、行号及对应位置的相互转换计算
②分配和回收