目录
一、整体认知
1.文件的定义 250
2.文件的属性 251
3.文件内部应该如何被组织(逻辑结构) 256
4.文件之间应该如何被组织起来(目录结构) 252
5.OS应该向上提供哪些功能 253
6.文件应该如何存放在外存中(物理结构) 258
7.OS如何管理外存中的空闲块(存储空间的管理) 258
8.OS需要提供的其他文件管理功能- 文件共享283+文件保护255
二、文件的逻辑结构 256
1.无结构文件
2.有结构文件
(1)顺序文件
1)串结构
2)顺序结构(default)
(2)索引文件
(3)索引顺序文件
(4)直接文件(散列文件)(Hash File)
三、文件目录
1.文件目录的实现 252
2.目录结构 280
(1)单级目录结构
(2)两级目录结构
(3)多级目录结构(树形)
(4)无环图目录结构
3.索引结点 252
四、文件的物理结构 258
1.连续分配
2.链接分配
(1)隐式链接
(2)显示连接
(3)索引分配
1)单级索引
1+)链接方案
2)多级索引
3)混合索引
五、逻辑 vs 物理
六、文件存储空间管理 294
1.空闲表法
2.空闲链表法
1)空闲盘块链
2)空闲盘区链
3.位示图法
4.成组链表法
5.考点
七、文件的操作 253
1.创建
2.打开
3.读
4.写
5.关闭
6.删除
7.打开 vs 读
八、文件共享 283
1.利用索引节点实现的文件共享(硬链接)
2.利用符号链实现的文件共享(软连接)
九、文件保护 255
1.口令保护
2.加密保护
3.访问控制
十、文件系统的层次结构 293
十一、文件系统的全局结构(布局) 294
十二、虚拟文件系统 VFS297
1.background
2.特点
(1)屏蔽了不同FS的差异和操作细节,为上层用户提供了文件操作
(2)VFS要求下层FS实现基本的函数操作。新加入的FS必须满足该系统中VFS的要求
(3)每打开一个file,VFS会在内存中创建一个vnode,用统一的DS表示文件data。创建vnode的时候会将该文件的属性copy到vnode中,并指向对应FS的函数区
十三、disk的结构 336
1.磁盘、磁头、磁道、扇区
2.读写disk
3.柱面、盘面
4.disk的物理地址
5.classification
(1)根据磁头是否可动
(2)根据磁盘是否可更换
十四、disk调度算法 339
1.一次disk读写花费的时间
2.磁盘调度算法
(1)先来先服务(FCFS)
(2)最短寻道时间优先(SSTF)
(3)扫描算法(电梯算法)(SCAN)
(4)循环扫描(C-SCAN)
(5)LOOK
(6)C-LOOK
十五、减少延迟的方法 342
(1)交替编号
(2)错位编号
(3)disk地址结构的设计
十六、disk管理 337
1.disk初始化
2.引导快
3.坏块
十七、固态硬盘SSD 343
1.原理
2.组成
3.读写性能
4. vs 机械硬盘
(1)随机读写速度快,连续读写慢
(2)安静
(3)擦除多了坏了
5.磨损均衡技术
(1)动态
(2)静态
一、整体认知
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.考点
①位示图法会算位号、行号及对应位置的相互转换计算
②分配和回收
七、文件的操作 253
1.创建
create 系统调用
2.打开
open 系统调用
3.读
read 系统调用
4.写
write 系统调用
5.关闭
close 系统调用
6.删除
delete 系统调用
7.打开 vs 读
open 系统调用仅是将文件目录读入内存,读的时候才将文件data放入内存
八、文件共享 283
1.利用索引节点实现的文件共享(硬链接)
索引结点中指向该文件,链接的是实际的file
利用count计数器表示有多少系统引用了该file
2.利用符号链实现的文件共享(软连接)
创建了一个快捷方式
九、文件保护 255
1.口令保护
用一个口令表示user正确
adv:开销小
disa:口令保存在系统中,so不安全
2.加密保护
使用正确密码解密
adv:开销小,安全
disa:费时间
3.访问控制
使用ACL对不同user or class 进行权限的分配
adv:实现灵活,可以实现负责的文件保护
十、文件系统的层次结构 293
十一、文件系统的全局结构(布局) 294
十二、虚拟文件系统 VFS297
1.background
多种FS的存在导致user使用时需要将一份file编写成对应的格式
so为了解决,引入 VFS
2.特点
(1)屏蔽了不同FS的差异和操作细节,为上层用户提供了文件操作
(2)VFS要求下层FS实现基本的函数操作。新加入的FS必须满足该系统中VFS的要求
(3)每打开一个file,VFS会在内存中创建一个vnode,用统一的DS表示文件data。创建vnode的时候会将该文件的属性copy到vnode中,并指向对应FS的函数区
十三、disk的结构 336
tip:看图
1.磁盘、磁头、磁道、扇区
2.读写disk
step:
step1:根据柱面号移动磁臂,让磁头指向指定磁面
step2:激活磁头
setp3:disk旋转,磁头划过,就完成了
3.柱面、盘面
4.disk的物理地址
采用(柱面号·盘面号·扇面号)
reason:减少磁头移动次数(物理移动开销较大) ,与(盘·柱·扇)相比
5.classification
(1)根据磁头是否可动
活动头磁盘 or 固定头磁盘
(2)根据磁盘是否可更换
可换盘磁盘 or 固定盘磁盘
十四、disk调度算法 339
1.一次disk读写花费的时间
寻道时间+旋转延迟时间+传输时间
寻道:移动磁头到对应磁道,启动磁头
旋转延迟:找到data开始扇区位置
传输:读写
so能够优化的主要是寻道时间,减少磁头移动的磁道即可减少寻道时间
2.磁盘调度算法
target:优化寻道时间
(1)先来先服务(FCFS)
公平
(2)最短寻道时间优先(SSTF)
贪心算法思想,只顾眼前优,会产生饥饿
ATTN:前一两个移动需要比较,不是一开始确定了方向就一直走
(3)扫描算法(电梯算法)(SCAN)
到磁道头才转向,中途路过请求就进行处理
存在两个问题
ques1:不用到磁道头再掉头
ques2:每个请求处理的频次不同,也就是可能频繁处理一边的请求
(4)循环扫描(C-SCAN)
开始朝向某方向时路过请求时进行处理,掉头回来之后直接到另一头,中间路过的请求不进行处理
eg:18 38 39 55 58 90 150 160 184 200 初始100,往右走
(5)LOOK
SCAN优化,不用到磁道头,读写请求头即可掉头
eg:18 38 39 55 58 90 150 160 184 200 初始100,往右走
(6)C-LOOK
LOOK优化,同C-SCAN处理方式
eg:18 38 39 55 58 90 150 160 184 200 初始100,往右走
十五、减少延迟的方法 342
在一次读写disk之后,磁头都需要准备一段时间
(1)交替编号
if连续读两块连在一起的disk块的话,还没准备好就已经到了下一块的内容了,so将逻辑上相邻的disk块在物理上间隔,就可以避免这个问题
(2)错位编号
同一柱面位置上的编号按道理来说是相同的,但是if读完上一个盘面的扇区上的data后需读下一个盘面上相邻的扇区data,就会错过
so 编号进行错位
(3)disk地址结构的设计
使用(柱面号·盘面号·扇面号)
磁头的移动次数少,与(盘面号·柱面号·扇面号)相比
十六、disk管理 337
1.disk初始化
低级(物理)初始化:分成相同大小块
高级初始化:包括具体data和功能块
2.引导快
3.坏块
十七、固态硬盘SSD 343
1.原理
闪存技术
2.组成
闪存翻译区,存储介质
3.读写性能
以页为单位读写,以块为单位擦除
4. vs 机械硬盘
(1)随机读写速度快,连续读写慢
(2)安静
(3)擦除多了坏了
5.磨损均衡技术
先用年轻的,老的歇着
(1)动态
先使用擦除次数少的
(2)静态
根据文件读写次数,不经常写的放在老的,经常写的放年轻的