导图社区 王道操作系统-文件系统
王道操作系统之文件系统思维导图,有助于帮助您熟悉知识要点,加强记忆。有需要的同学,可以收藏下哟。
编辑于2021-10-17 16:41:38文件系统
知识细节补充

索引节点是FCB的改进 由于内存调入磁盘块非常耗时,因此提高了文件检索速率
符号链接=软链接
硬链接的速度快于软链接
文件访问方式
随机访问
顺序访问
文件系统模型
最底层
对象及其属性
中间层
对对象进行操控和管理的软件集合
最高层
用户接口
文件组成
文件控制块(FCB)
存在形式:目录项/磁盘索引结点
目录项至少包含文件名和文件物理地址
文件体
文件目录最主要功能
按名存取
树形目录结构
根节点
根目录
枝节点
子目录文件
叶子节点
数据文件
引入索引结点后,磁盘包括
每个文件一个磁盘索引结点
目录项
若干存放内容的磁盘块
打开文件
讲磁盘中的目录(FCB/磁盘索引结点)复制到内存
在用户和指定文件建立通路
返回用户一个文件描述符
无结构文件以字节为单位
文件目录
二级目录不能分类,解决了重名问题
提高磁盘可靠性技术(习题教材P167)
SFT-1
双份目录表和文件分配表FAT
热修复重定向
将磁盘的一部分区域留出来
若某个块损坏了,则将数据写道上面的区域中
记录下坏块表中的对应关系
写后读校验
内存缓冲区写进磁盘后,马上又读入到另一个缓冲区
两个缓冲区进行比较,若不同则盘坏了,此时进行热修复重定向
王道习题
4.1.7P227
T6:UNIX中,所有设备都被设为 特殊的文件
T7:文件分类
逻辑文件
流式文件
有结构文件
物理结构
连续文件
链接文件
按文件用途分
系统文件
T9
逻辑索引
加快文件的定位
物理索引
管理不连续的物理块
索引文件由逻辑文件和索引表组成
T10
索引文件存取时必须先找索引表
索引项只包含记录的长度和逻辑地址
T12
read调用参数不包含文件名
文件描述符(索引号)
fd:每个进程维护一个表
缓冲区首地址
传送的字节数
T16
FCB不包含文件控制块的相关信息,只存取文件的相关信息
基本信息
存取控制信息
文件的属性(能否读或者写)
与用户访问权限共同限制 对一个文件的访问
使用信息
T21
软链接有引用计数值,建立的时候直接拷贝,此后无论如何该值不再改变
硬链接当
T25
加密保护机制由用户实现
可扩展
访问控制机制由系统实现
T29
磁带使用连续存放方法
磁盘使用错位存放方法,一般不连续
不同文件系统的文件的物理结构不同
常常使用备份的方式访问文件
存取控制矩阵用于多用户的存取权限保护
T31
系统打开文件表中每个文件仅含有一个表项
不同用户文件表对于同一个文件可以各自产生不同表项
且其表项内容不一定相同(读写指针)
文件描述符表
与文件分配表FAT要注意区分
P243 4.2.6
索引结点的个数 = 文件的个数
随机访问
连续分配
索引分配
快速随机访问
连续结构
随机访问且易于扩展
索引结构
索引结点的好处
磁盘盘块可以放更多目录项
减少查找文件的I/O信息量
T14 文件的存储空间实际上是对 外存空闲区 对组织和管理
T16 记录成组分解技术:不能跨越不同盘块进行数据存储(即不能100B对数据其中高12B在A盘块,88B在A+1盘块)
此题答案错了,看视频讲解
4.3.5 P261
磁盘调度是为了缩短寻道时间
也是对I/O读写影响最大的时间
T11 “每道的所有扇区组成一个簇”
表示访问一次等于访问一转的时间
T16 一条逻辑记录等同于一块
T7
旋转延迟与物理结构有关
链式结构则会很长时间
旋转延迟与空闲空间分配有关
如果两个空闲空间相隔很远,则延迟时间很长
T19 磁臂粘着:FCFS不会
CSCAN和SCAN会:当处理当前磁道的时候,又来了当前磁道的需求,则源源不断
T20
簇是windows的说法
块是Linux,Unix的说法
二者都是存储空间分配的基本单位,一般为扇区的整数倍
而扇区是一次I/O的基本单位
课后习题


 
  
FAT大小: 1.软盘大小/盘块大小 = 盘块数 2.盘块数×FAT表项大小 = FAT总大小 3.FAT总大小/盘块大小 = FAT占用盘块数 4.FAT占用盘块数/每个柱面的盘块数 = FAT所在柱面 最后一次磁盘访问的盘块 = 该题目该开始的时候磁头的初始化位置 显式链接添加内容的流程: 1.先到FCB找到文件磁盘块 2.到FAT表追加到文件末尾 3.到新添加的磁道填写内容 4.到该文件的FCB修改文件长度等信息
成组链接法的最后一组有一个结束标记0,因此若最后一组的大小为100块,实际上计算的时候按照99块来算
习题书P175 例题8
直接文件(散列文件) 在直接存取存储设备上,记录的关键字与其地址之间可以通过某种方式建立对应关系,利用这种关系实现存取的文件叫直接文件。
MS-DOS采用的是显示链接文件结构(FAT)
Linux的extfs采用位示图法
王道二刷
暑期强化课
FAT表中
找文件的时候可能需要在多个目录表里面顺序找到所需要的目录项,因此需要访问多次磁盘找到文件
找文件对应的地址的时候,只需要一次访问磁盘即可,因为比如一个簇4KB,对于5000的逻辑地址,可以算出来在第二个块,此时根据FAT表和文件的起始块号即可在内存中的FAT表中找到第二块所在的位置,再进行访存即可,而不用管第一块
FAT和根目录以及根目录的INODE结点通常在内存中
INODE不在内存里面,因为很大
INODE结点第一列的编号是隐含的
二级索引实际占用的块,除了直接索引的(比如10个块)和一级索引占用的1024和二级索引占用的数据块,还要考虑一级索引对应的一个索引块和二级索引对应的第一级的索引块和第二级的索引块
内存和外存的联系
听音乐拉进度条
主动请求系统调用,将磁盘的B3块主动调入内存
与正常听音乐到B3所需内容发现该进程对应的PCB中的页表中对应B3项的有效位为0,说明内存没有B3,进而发生缺页异常,而到外存调页不一样
一个是主动一个是被动
多个文件的fd指向同一个内存索引节点
选择题
read和write系统调用的参数是fd(文件描述符),没有文件名
open和delete用到了文件路径和文件名
文件被打开是指
调用open函数将文件控制块FCB调入内存
具体文件内容等到用户读取的时候再调用
分清楚物理索引表和逻辑索引表
打开文件表系统只有一张,是open调用的时候把FCB放进去的地方
旋转延迟与磁盘调度算法无关
磁盘
磁盘是分时共享,每一时刻只能一个进程访问
磁盘读写影响最大的时间是寻道时间
一条道0.2ms
100条则50ms
而旋转延迟平均5.5ms
给磁盘分配空间一般是按块(簇)分配,而不是按扇区分配
磁盘初始化的三个阶段
循环扫描算法(CLOOK)
术语总结
系统打开文件表
一个系统一张
里面有一个个索引节点
文件描述符
fd
调用open函数返回的非负值
用来指向索引节点
文件控制块
FCB
放在打开文件表中
大题
文件和文件不能建立链接
只有文件和目录才可以
一个共享文件能否被删除要分情况讨论
如果是符号链接方式(软链接)
则可以被删除,此时访问LINK文件的路径的时候发现为空,说明此文件被删了
如果是索引节点的共享方法(硬链接)则不行
因为导致了指针悬空的问题
一个文件夹能否被删除
首先看里面有没有共享文件
有的话要根据上面的方法判断是软还是硬
软可以
硬不可以
没有的话就能
通过修改存取控制表来对文件加以保护
通过获取访问文件A的权限来共享文件A
文件大题
T7
T14
T15
连续分配里面,找目录要一个个找不能跳,找文件可以跳
磁盘大题
1000个磁道
编号写0-999而不是0-1000
CSCAN和SCAN都是移到两边
算磁盘的三个时间的时候,如果题目告诉我们读完一个磁盘的等待时间
要记住最后一个磁盘读完之后也要算那个时间
T3,6错的一样
簇号转换成磁盘物理地址是由
磁盘驱动程序完成的
王道思维导图
1
2
3
4
创建顺序文件
索引
7
8
9
10
11
12:串讲例子
13
14
15
16