第四章 文件管理

1 文件系统基础

文件的概念

文件是以计算机硬盘为载体的存储在计算机上的信息集合

  1. 数据项
  2. 记录
  3. 文件

文件的属性

Bpa2M6.png
BpaxoQ.png

文件的基本操作

BFDWp8.png
BFr6u4.png
  1. 打开文件
    BFrtBj.png
  2. 创建文件
    BFDjcF.png
  3. 写文件
  4. 读文件
  5. 文件重定位(文件寻址)
  6. 删除文件
    BFrVje.png
  7. 截断文件

文件的打开与关闭

打开并不是我们平常操作的那样打开(如点开一个txt文件),而是将文件的信息从外存添加到内存的打开文件表的一个表目中,我们平常所说的打开其实还经历了读取这一步骤

文件的逻辑结构

顺序文件

BpD8gA.png

又分为定长和可变长
BpDD3j.png

BprYRJ.png
Bpshc9.png
  • 链式存储怎样都无法实现随机存取(无论是定长还是非定长)
  • 定长文件如果顺序存储是可以随机存取的
  • 如果采用串结构,无法快速找到某关键字对应的记录,但是如果是顺序结构,可以根据关键字快速找到对应记录(折半查找)

索引文件

BpcdpD.png

索引顺序文件

B9U8QP.png

还是嫌多就多级的
B9UTOK.png
不是浪费了很多空间么?

这里说顺序文件就是指物理上顺序的文件

直接文件或散列文件(Hash File)

文件目录

文件控制块

B9arhd.png
B9d93R.png
  1. 单级文件目录
    B9dNCj.png

  2. 两级
    B9dDbT.png

  3. 多级
    B9dbPH.png

B9djMt.png

缺点:树形目录不便于实现文件的共享(易考查)

  1. 无环图目录结构
    B9wyOP.png

注意文件共享和拷贝的区别:
文件的拷贝,就是副本了,并不会指向同一个,一个修改了,另一个不会修改
文件的共享,一个用户修改了,另一个看到的也改了,但是一个人删除了,只是这个用户的指向文件的共享链删除,另一个用户还是能看到这个文件(硬链接)

索引结点(FCB的改进)

B9rfH0.png
B9s1rn.png

文件的共享

硬链接:基于文件索引结点的共享方式
软链接:利用符号链实现文件共享
区别:
硬链接,某个删除源文件后,另一个用户还可以看到,并不会真的删掉,只是要删除用户的不再指向这个索引结点
软链接,文件拥有者删除源文件后,就真删了,就像windows下的快捷方式,如果源文件删了,快捷方式就失效了.缺点是删了之后,又创建了一个文件名一样的文件,那么软链接的那个就会访问这个,导致出错
BFgMSx.png

文件保护

BFcAIA.png

小结

B9s2GD.png

文件系统的实现

文件系统层次结构

BF6vP1.png

文件分配方式

连续分配

  1. 优点:
    BimW3F.png
BimIBR.png
  1. 缺点:
    BimXge.png
BimzDA.png
  1. 总结:
Bin9Et.png

链接分配

考试中只说链接分配是指隐式链接

隐式链接
BinYr9.png
Bin6rd.png
显式链接

文件分配表(FAT):整个磁盘只有一个

BiuQeA.png
Biu8FP.png

索引分配

BiuhwR.png
BiKE0s.png
链接方案
BiKIBj.png
多层索引

BiM328.png
求最大文件,访问几次

混合索引

BiM6r4.png
直接地址读两次,一级读三次,二级读四次

小结
BiMRaR.png

小结

BiMhPx.png

文件存储空间管理

Bi8V74.png

存储空间的划分与初始化

Bi8rDS.png

空闲表法

Bi8b59.png

空闲链表法

盘块:就是物理块,一块一块的
盘区:相邻的空闲盘块组成一个区
BiG4JA.png

空闲盘块链
BiJ8FH.png
空闲盘区链
BiJTh9.png

位示图法

BiY7VS.png
BitSbT.png

成组链接法

Bi4MG9.png

csdn这篇讲的不错

逻辑结构VS物理结构

Bi3q6f.png

磁盘组织与管理

磁盘结构

BF2EgP.png
BF2sv6.png
BF2X5j.png
BFRPqU.png

注意可换盘磁盘和固定盘磁盘

小结:
BFR3IH.png

磁盘调度算法

BFHQ1g.png

FCFS

BFbPU0.png

SSTF(虽短寻找时间优先算法)

BFbMUx.png

扫描(SCAN)算法(电梯调度算法)

BFqUlF.png

LOOK调度算法

BFLVB9.png

循环扫描算法(C-SCAN)

BFLjgO.png

C-LOOK算法

BFLHER.png

小结

BFOPUI.png

如果题目只说scan就是look
只说c-scan就是c-look
不用到头再返回

减少延迟时间

BFOrRK.png

BFXOXD.png
BFj8uF.png

转两圈可能是因为一圈会有遗漏的
BFvGxf.png
和交替编号一样,错位命名也是为了防止转过头,稍微有点儿时间准备

BFvszV.png

磁盘管理

磁盘初始化

BFvzWt.png

引导块

BFx21P.png

坏块

BFxokj.png

小结

BFxq10.png