快速过一遍计算机基础--操作系统—4.文件管理
目录
Part 1:文件的逻辑结构
Part 2:文件目录
一、实现文件目录的关键数据结构----文件控制块FCB
二、目录结构
三、对文件控制块FCB的优化—索引结点
Part 3:文件的物理结构(文件分配方式)
一、文件的三种分配方式
1.连续分配
2.链接分配
3.索引分配
二、辨别逻辑结构和物理结构
1.链式存储 vs 链式分配
2.索引文件 vs 索引分配
3.需想清楚的点
Part 4:文件的基本操作
Part 5:文件存储空间管理
一、存储空间的划分和初始化
二、存储空间的管理方法
Part 6:文件共享、文件保护、文件系统的层次结构
Part 7:关于磁盘
一、磁盘的结构
二、磁盘调度算法
三、减少一次磁盘读写操作的时间----减少延迟时间
四、磁盘的管理
Part 1:文件的逻辑结构
1.无结构文件(流式文件):本质是一系列二进制或字符流,没有明显的结构特性,不做讨论。
2.有结构文件(记录式文件,可分为定长记录和可变长记录)
(1)顺序文件(文件中的记录逻辑上顺序排列)
- 记录可定长可变长
- 又分为串结构(顺序与关键字无关)和顺序结构(顺序按关键字顺序排列)
- 可顺序存储可链式存储
(2)索引文件
- 建立一张索引表加快文件检索速度,每条记录对应一个索引项(链接文件中的记录),文件中的记录在物理上可以离散地存放。
- 索引表本身是定长记录的顺序文件,可随机存取。
(3)索引顺序文件
- 为了解决索引表过大的问题,索引表的索引项对应的是一组记录;每个分组就是一个顺序文件,分组内记录不需要按关键字排序。
- 多级索引顺序文件
Part 2:文件目录
一、实现文件目录的关键数据结构----文件控制块FCB
- FCB:目录文件中的一个记录,包含的字段有“文件名”“类型”“存储权限”“物理位置”等。
- 需要对目录进行的操作:搜索,创建/删除/文件,显示/修改目录
二、目录结构
1.单级目录结构:不允许文件重名,不适用于多用户系统。
2.两级目录结构:分为主文件目录和用户文件目录,允许不同用户的文件重名。
3.多级目录结构(树形):不同目录下的文件可以重名,但不利于实现文件的共享。
4.无环图目录结构:可以用不同的文件名指向同一个文件,需要为每一个共享结点设置一个共享计数器。
三、对文件控制块FCB的优化—索引结点
- 新建索引表,索引结点中的信息仅包含文件名以及指向文件目录文件的指针。
- 磁盘索引结点,内存索引结点(增加一些信息如“文件是否被修改”、“此时有几个进程正在访问该结点”)
Part 3:文件的物理结构(文件分配方式)
一、文件的三种分配方式
1.连续分配
- 每个文件在磁盘上占有一组连续的块
- 支持随机访问,但不方便拓展,且存储利用利用率低。
2.链接分配
- 分为隐式链接(物理块上有要链接的下一物理块的地址)和显式链接(把链接关系存在文件分配表FAT中,一个磁盘一个FAT,开机时读入FAT之后常驻内存)。
- 不支持随机访问,但容易拓展,且能节省存储空间。
3.索引分配
- 操作系统为每一个文件建立一张索引表,索引表记录文件各个逻辑块对应的物理块。索引表存放的磁盘块称为索引块,文件数据存放的磁盘块为数据块。
- 若索引表过大,可采取的方法:链接方案、多层索引、混合索引。
- 支持随机访问,且易于实现文件的拓展。
二、辨别逻辑结构和物理结构
1.链式存储 vs 链式分配
- 链式存储:文件的记录之间是链接的。
- 链式分配:文件块之间是链接的。
2.索引文件 vs 索引分配
- 索引文件:索引表由用户建立,对应的内容是文件中的记录。
- 索引分配:索引表由操作系统建立,对应的内容是文件块。
3.需想清楚的点
- 顺序文件采用顺序存储/链式存储
- 链式存储的顺序文件采用连续分配/链式分配
- 索引文件采用索引分配
Part 4:文件的基本操作
系统只有一张打开文件表。
Part 5:文件存储空间管理
一、存储空间的划分和初始化
1.存储空间的划分:磁盘分区
文件卷(逻辑卷、逻辑盘):由若干物理磁盘组成
2.存储空间的初始化:把文件卷划分为目录区和文件区
二、存储空间的管理方法
1.空闲表法;适用于连续分配。
2.空闲链表法:可连续分配可离散分配。
3.位示图法:每个二进制对应一个盘块。
4.成组链表法:
文件卷的目录区中专门用一个磁盘块作为超级块,系统启动时需要将超级块读入内存。超级块中第一项信息是下一盘块的块数,第二项是下一盘块组的地址,其余为盘块的地址。
Part 6:文件共享、文件保护、文件系统的层次结构
Part 7:关于磁盘
一、磁盘的结构
二、磁盘调度算法
主要解决的问题:当多个进程先后陆续地请求访问磁盘时,应该先处理哪个请求。
1.先来先服务FCFS
2.最短寻找时间优先SSTF
3.扫描算法SCAN:直到最外/内边缘才调转磁头方向。
4.循环扫描算法C-SCAN:规定只有磁头朝某个特定方向移动时才处理请求。
5.LOOK调度算法和C-LOOK调度算法:
如果在磁头移动方向上已经没有别的请求,就可以立即进行下一步。
三、减少一次磁盘读写操作的时间----减少延迟时间
方法1:交错编号---相邻扇区编号错开
方法2:错位命名---相邻盘面的扇区编号“错位”
方法3:磁盘地址结构的设计—(柱面号,盘面号,扇区号)