操作系统--文件管理

1、文件管理概述

  • 文件的定义:一组有意义的信息的集合
  • 文件的属性:文件名、标识符、类型、位置、大小、保护信息…
  • 文件内部的组织形式:文件的逻辑结构
  • 文件之间的组织形式:目录结构
  • 操作系统应向.上提供哪些功能:create、 delete、 open、close、 read、 write 系统调用
  • 文件存放在外存的方式:文件的物理结构
  • 操作系统管理外存中的空闲块:存储空间的管理
  • 操作系统需要提供的其他文件管理功能:文件共享、文件保护

2、文件的逻辑结构

  • 无结构文件(一系列的二进制流或字符流,“流式文件”)
  • 有结构文件(一条条记录组成,“记录式文件”)
    • 顺序文件
    • 索引文件
    • 索引顺序文件

(1)顺序文件

  • 分类:串结构(记录之间顺序与关键字无关)、顺序结构
  • 顺序文件默认是物理上顺序结构的
  • 顺序存储的分类:可变长记录(无法实现随机存储)、定长记录(可实现随机存储)
  • 顺序结构、定长记录的顺序文件可以快速检索
  • 缺点:不方便增加、删除记录

(2)索引文件

  • 建立一张索引表,每个记录对应一个表项。各记录不用保持顺序,方便增加删除记录
  • 索引表本身就是定长记录的顺序文件,一个索引表项就是一 条定长记录,因此索引文件可支持随机存取
  • 若索引表按关键字顺序排列,则可支持快速检索

(3)索引顺序文件

  • 将记录分组,每组对应一个索引表项
  • 检索记录时先顺序查索引表,找到分组,再顺序查找分组
  • 当记录过多时,可建立多级索引表

3、文件目录

(1)实现:一个文件对应一个FCB(文件控制块),一个FCB就是一个目录项,多个FCB组成文件目录

(2)操作:搜索、创建文件、删除文件、显示文件、修改文件

(3)目录结构

  • 单级目录结构
  • 两级目录结构
  • 多级(树形)目录结构
  • 无环图目录结构

(4)索引结点:存放除了文件名之外的所有信息,每个文件对应一个索引结点

4、文件的分配方式

分配方式 如何分配 目录项内容 优点 缺点
顺序分配 为文件分配的必须是连续的磁盘块 起始块号、文件长度 顺序存取速度快,支持随机访问 会产生碎片,不利于文件拓展
隐式链接分配 除文件的最后一个盘块之外,每个盘块中都存有指向下一盘块的指针 起始块号、结束块号 解决了碎片问题,外存利用率高,文件拓展实现方便 只能顺序访问,不能随机访问
显式链接分配 建立一张文件分配表(FAT),显式记录盘块的先后关系(开机后FAT常驻内存) 起始块号 除了隐式的优点外,还可以通过查询FTA实现随机访问 FAT需要占用一定存储空间
索引分配 为文件数据库建立索引表 第一个索引块的块号(多级索引:顶级索引块块号) 支持随机访问,易于实现文件的拓展 索引表需占用一定的存储空间。访问数据块之前需要先读入索引块

5、文件存储空间管理

​  存储空间的划分

在这里插入图片描述
管理方法

·(1)空闲表法

​  记录、组织方式:空闲表中记录每个连续空闲区的起始盘块号、盘块数

​  分配:分配时可采用首次适应、最佳适应等策略;回收时注意表项的合并问题

(2)空闲链表法

​  记录、组织方式:空闲盘块链/盘区链

​  分配:(盘块链)分配时从链头依次取出空闲块,回收时将空闲块查到链尾/(盘区链)分配时可采用首次适应、最佳适应等策略;回收时注意相邻空闲盘区合并的问题

(3)位示图法

​  记录、组织方式:一个二进制位对应一个盘块。(字号, 位号)或(行号,列号)与盘块号一一对应

​  分配:若文件需要K个块,顺序扫描位示图,找到K个相邻或不相邻的“0”;根据(字号,位号)算出对应盘块号,将相应盘块分配给文件;将相应位设置位“1”

6、向上提供的几个最基本的功能

  • 创建文件(create)
  • 删除文件(delete)
  • 读文件(read)
  • 写文件(write)
  • 打开文件(open)
  • 关闭文件(close)

7、文件共享

  • 硬链接(文件共享):各用户的目录指向同一个索引结点,设置count链接计数
  • 软连接(快捷方式):在一个Link型的文件中记录共享文件的存放路径

8、文件保护

(1)口令保护

 实现:为文件设置一个"口令",用户想要访问文件时需要提供口令,由系统验证口令是否正确

 特点:实现开销小,但"口令"一般存放在FCB或索引结点中(也就是存放在系统中)因此不太安全

(2)加密保护

 实现:用一个"密码"对文件加密,用户想要访问文件时,需要提供相同的“密码"才能正确的解密

 特点:安全性高,但加密/解密需要耗费一定的时间

(3)访问控制

 实现:用一个访问控制表(ACL) 记录各个用户(或各组用户)对文件的访问权限

 特点:实现灵活,可以实现复杂的文件保护功能

9、文件系统的层次结构

在这里插入图片描述

10、磁盘(外存)

10.1 磁盘的结构

  • 磁盘:由表面涂有磁性物质的原型盘片组成
  • 磁道:磁盘的盘面被划分成一个个磁道,就是一个“圈”
  • 扇区:监视一个磁盘块
  • 盘片:磁盘有多个盘片组成
  • 柱面:所有盘面中相对位置相同的磁道组成柱面
  • 如何读/写数据:磁头移动到目标位置,盘片旋转,对应扇区划过磁道完成读/写
  • 磁盘的物理地址=(柱面号,盘面号,扇区号)

在这里插入图片描述
磁盘分类

 根据磁头是否可移动:固定头磁盘、移动头磁盘

 根据盘片是否可更换:固定盘磁盘、可换盘磁盘

10.2 磁盘调度算法

 一次磁盘读/写操作需要的时间与寻找时间、延迟时间、传输时间有关。延迟与传输时间与硬件有关无法优化,操作系统的调度算法影响的是寻找时间

  • 寻找时间:启动磁臂。移动磁头所花的时间
  • 延迟时间:将目标扇区转到磁头下面所花的时间
  • 传输时间:读/写数据花费的时间

在这里插入图片描述
算法

  • 先来先服务(FCFS):按访问请求到达的先后顺序进行处理
  • 最短寻找时间优先(SSTF):每次都优先响应距离磁头最近的磁道访问请求(贪心)
  • 扫描算法(SCAN):只有磁头移动到最边缘的磁道时才可以改变磁头移动方向
  • 循环扫描算法(C-SCAN):只有磁头朝某个方向移动时才会响应请求,移动到边缘后立即让磁头返回起点,返回途中不响应任何请求
  • LOOK算法:SCAN算法的改进,只要在磁头移动方向上不再有请求,就立即改变磁头方向
  • C-LOOK算法:C- SCAN算法的改进,只要在磁头移动方向上不再有请求,就立即让磁头返回

10.3 减少延迟时间的方法

(1)交替编号

​  原理:读取完一个扇区后需要一段时间处理才可以继续读入下一个扇区

​  具体做法:让编号相邻的扇区在物理,上不相邻

(2)错位命名

​  原理:与"交替编号"的原理相同。“错位命名法"可降低延迟时间

​  具体做法:让相邻盘面的扇区编号"错位”

​  注:使用(柱面号,盘面号,扇区号)的结构,在读取地址连续的磁盘块时,不需要移动磁头

10.4 磁盘的管理

(1)磁盘初始化步骤

  1. 低级格式化/物理格式化:划分扇区
  2. 磁盘分区(C盘、D盘、E盘)
  3. 逻辑格式化:建立文件系统(建立根目录文件、建立用于存储空间管理的数据结构)

(2)引导块

​  计算机启动时需要运行初始化程序(自举程序)来完成初始化。

​  ROM中存放很小的自举装入程序。完整的自举程序存放在初始块(引导块)中

(3)坏块管理

 简单的磁盘:逻辑格式化时将坏块标记出来

 复杂的磁盘:磁盘控制器维护一个坏块链,并管理备用扇区

发布了121 篇原创文章 · 获赞 45 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_41596568/article/details/104026038