操作系统-六-八章
- 前言:
- 系列博文
- 第六章 文件管理
-
- 1. 文件的定义
- 2. 文件的分类
- 3. 文件逻辑结构分类
- 4. 文件物理结构分类
- 5. 外存储设备
- 6. 磁盘计算
- 7. 文件存取方式
- 8. 文件目录
- 9. 文件目录块(FCB)
- 10. 目录文件
- 11. 目录结构
- 12. 全路径名&相对路径
- 13. 目录项分解法
- 14. 存储空间分配与回收
- 15. 回收和分配算法
- 16. 记录的成组
- 17. 建立文件
- 18. 打开文件
- 19. 读文件
- 20. 写文件
- 21. 关闭文件
- 22. 删除文件
- 23. 指针定位
- 24. 文件的保护
- 25. 存取控制矩阵
- 26. 二级存取控制
- 27. UNIX 系统内部数值
- 28. 提高文件系统性能的方法
- 29. 磁盘调度算法
- 30. 先来先服务调度算法( FCFS)
- 31. 最短寻道时间优先调度算法( SSTF)
- 32. 扫描算法( SCAN)
- 33. 文件分配表(FAT)
- 34. 文件系统执行 close()
- 第七章 I/O 设备管理
-
- 1. 设备管理
- 2. 设备管理的主要任务
- 3. 设备的分类
- 4. I/O 设备的控制方式
- 5. 程序直接控制方式(PIO(Programmed I/O,程控 I/O)方式)
- 6. 程序直接控制的关键部件
- 7. 中断控制方式
- 8. 中断控制方式的处理过程
- 9. DMA(直接内存访问)方式
- 10. DMA 控制的关键部件
- 11. 通道控制方式
- 12. 通道的功能
- 13. I/O 系统硬件结构
- 14. I/O 软件分层
- 15. 与设备无关 I/O 软件功能
- 16. 典型的 I/O 技术
- 17. 缓冲技术
- 18. 设备分配技术
- 19. 虚拟设备
- 20. SPOOLing 技术
- 21. 提高 I/O 性能的技术
- 22. 设备表作用
- 23. 设备独立层
- 24. “准备就绪”信号
- 25. 外部设备命令传递
- 26. 高速缓存
- 27. 键盘的 I/O 控制
- 第八章 死锁
前言:
作者在CSDN博客上开通了[网络工程师]专栏,目的在于激励自己坚持学习。由于是初次进行博客创作、经验不足、可能比较粗糙,如有错漏之处希望大家能够指正、也欢迎大家一起交流学习。
如需查看完整学习博文(笔记)请点击 [网络工程师] 进行查看
系列博文
第六章 文件管理
1. 文件的定义
⚫ 文件可以被解释为一组带标识的、在逻辑上有完整意义的信息项的序列。
⚫ 这个标识为文件名,信息项构成了文件内容的基本单位。
⚫ 信息项是构成文件内容的基本单位,这些信息项是一组有序序列,它们之间具有一定的顺序关系;
⚫ 文件提供了一种将数据保存在外部存储介质上以便于访问的功能。为了方便用户使用,每个文件都有特定的名称。
⚫ 文件名称的长度因系统而异。
⚫ 有的文件系统不区分文件名的大小写,而有的则加以区分。
⚫ 有的操作系统对不同的后缀有特定的解释,而有的则没有统一的规定。
⚫ 一般地,文件建立在存储器空间里,以便使文件能够长期保存。即:文件一旦建立,就一直存在,直到该文件被删除或该文件超过事先规定的保存期限。
2. 文件的分类
1) 按文件的用途分类
① 系统文件
② 库函数文件
③ 用户文件
2) 按文件的组织形式分类
① 普通文件
② 目录文件
③ 特殊文件
3) 一些常见的文件分类方式
⚫ 按文件的保护方式可划分为:只读文件、读写文件、可执行文件、无保护文件等。
⚫ 按信息的流向分类可划分为:输入文件、输出文件和输入输出文件等。
⚫ 按文件的存放时限可划分为:临时文件、永久文件和档案文件等。临时文件,即记有临时性信息的文件;永 久性文件,即其信息需要长期保存的文件;档案文件,即保存在作为“档案”用的磁带或光盘等永久性介质上以备查证和恢复时使用的文件。
⚫ 按文件所使用的介质类型分类可划分为:磁盘文件、磁带文件、卡片文件和打印文件等。
⚫ 还可以按文件的组织结构分类。比如,由用户组织的文件称逻辑文件,逻辑文件可采用流式文件和记录式文件两种组织方式。而文件在存储介质上的组织方式是文件的物理结构(物理文件),常用的组织方式有顺序文件、链接文件和索引文件等。
4) UNIX 类操作系统中文件的分类
⚫ 在 UNIX 类操作系统中,文件系统包括 3 种类型的文件:
① 普通文件。这是内部无结构的一串平滑的字符所组成的文件。
② 目录文件。这是由文件目录项所构成的文件。
③ 特殊文件。在 UNIX 类操作系统中, 把 I/O 设备也看成是一种文件——特殊文件。
⚫ 文件系统分类的目的是:对不同文件进行管理,提高系统效率;同时,提高文件系统的用户界面友好性。
3. 文件逻辑结构分类
可以把文件划分成 3 类逻辑结构:无结构的字符流式文件、定长记录文件和不定长记录文件构成的记录树,定长记录文件和不定长记录文件可以统称为记录式文件。
1) 流式文件
⚫ 流式文件是有序字符的集合,其长度为该文件所包含的字符个数,所以又称为字符流文件。
⚫ 在流式文件中,构成文件的基本单位是字符。
⚫ 可以认为流式文件就是一串有开头和结尾的连续字符;
⚫ 流式文件无结构。所以用户对流式文件可以方便地进行操作。
⚫ 源程序、目标代码等文件属于流式文件。UNIX 类系统采用的是流式文件结构。
2) 记录式文件
⚫ 记录式文件是一组有序记录的集合。在记录式文件中,构成文件的基本单位是记录。
⚫ 记录是一个具有特定意义的信息单位,它由该记录在文件中的逻辑地址(相对位置)与记录名所对应的一组键、属性及其属性值所组成,可按键进行查找。
⚫ 记录式文件可分为定长记录文件和不定长记录文件两种。
⚫ 在定长记录文件中,各个记录长度相等。在检索时,可以根据记录号 i 及记录长度 L 就可以确定该记录的逻辑地址。
⚫ 在不定长记录文件中,各个记录的长度不等,在查找时,必须从第一个记录起一个记录一个记录查找,直到找到所需的记录。
⚫ 记录式的有结构文件可把文件中的记录按各种不同的方式排列,构成不同的逻辑结构,以便用户对文件中的记录进行修改、追加、查找和管理等操作。
4. 文件物理结构分类
常用的文件物理结构有顺序结构、链接结构、索引结构和 I 节点结构。
1) 顺序结构(连续分配)
⚫ 顺序结构又称连续结构,它把逻辑上连续的文件信息依次存放在连续编号的物理块中。这是一种逻辑记录顺序核物理记录顺序完全一致的文件。
⚫ 在顺序结构中,一个文件的目录项中只要指出该文件占据的总块数和起始块号即可。
⚫ 优点:
① 由于从文件的逻辑块号到物理块号的变换,知道了文件在文件存储设备上的起始块号和文件长度,就能很快进行存取。
② 且顺序结构支持顺序存取和随机存取。
⚫ 对于顺序存取,顺序结构的存取速度快。
⚫ 缺点:
① 文件不能动态增长。对于顺序结构的文件,不利于文件插入和删除。
② 随着文件不停地被分配和被删除,空闲空间逐渐被分割为很小的部分,最终导致出现存储碎片, 虽然空间满足,但由于不连续且都是小碎片而无法分配。
2) 链接结构(不连续分配)
⚫ 链接结构的实质就是为每个文件构造所使用磁盘块的链表。
⚫ 使用这种链接结构的文件,将逻辑上连续的文件分散存放在若干不连续的物理块中。
⚫ Windows 的 FAT 文件系统采用的是链接结构,但将所有链指针集中存放。
⚫ 优点:
① 解决存储碎片问题,有利于文件动态扩充;
② 有利于文件插入和删除,提高了磁盘空间利用率。
③ 方便链接结构的文件动态扩充。
⚫ 缺点: 存取速度慢,不适于随机存取文件;
① 磁盘的磁头移动多,效率相对较低;
② 存在文件的可靠性问题,比如指针出错,文件也就出错了;
③ 链接指针需要占用一定的空间。
⚫ 链接结构的文件所使用的物理块是不连续分配的,所以一个链接结构的文件的所有物理块在磁盘上是分散分布的。
⚫ 与顺序结构的文件相比,在访问一个链接结构的文件时需要更多的寻道次数和寻道时间。
3) 索引结构
⚫ 索引结构的文件把每个物理盘块的指针字集中存放在被称为索引表的数据结构中的内存索引表中。
⚫ 优点:
① 索引文件结构保持了链接结构的优点,又解决了其缺点。
② 索引结构文件既适于顺序存取,也适于随机存取。
③ 可以将有关逻辑块号和物理块号的信息全部保存在了一个集中的索引表中。
④ 索引文件可以满足文件动态增长的要求,也满足了文件插入、删除的要求;
⑤ 索引文件还能充分利用外存空间。
⚫ 缺点:
① 会引起较多的寻道次数和寻道时间;
② 索引表本身增加了存储空间的开销。
4) 索引结构的实例—— I 节点
⚫ I 节点是一种多级索引文件结构。
⚫ I 节点最早出现在 UNIX 操作系统中,是多级索引结构文件在 UNIX 中的具体实现。
⚫ 掌握了 I 节点也就掌握了多级索引文件结构的工作原理。
⚫ I 节点的基本思想是,给每个文件赋予一张称为 I 节点的小表, 在这张小表中列出了文件属性和文件中各块在磁盘上的地址
⚫ I 节点的文件结构,既适合小文件使用,也可供大型文件使用,灵活性比较强。这种文件结构占用的系统空间比一般多级索引结构的文件要少。
5. 外存储设备
l 外存储设备通常由驱动部分和存储介质两部分组成。
l 外存储设备存取的过程方式因各种具体存储设备而异,不过也有一定共性。
l 外存储设备存取的过程大致如下:读状态-置数据-置地址-置控制-再读状态。
6. 磁盘计算
⚫ 在随机存取设备中,磁盘是一种典型的随机存取设备。
⚫ 磁盘设备允许文件系统直接存取磁盘上的任意物理块。
⚫ 磁盘一般由若干磁盘片组成,每个磁盘片对应两个读/写磁头,分别对磁盘片的上下两面进行读写。
⚫ 磁盘上每个物理块的位置可用柱面号( 磁道号)、磁头号和扇区号表示, 这些地址与物理块号一一对应。其计算公式如下:
① 已知物理块号,则磁盘地址:
柱面号=[物理块号/(磁头数 ×扇区数)]
磁头号=[(物理块号 mod(磁头数× 扇区数))/扇区数]扇区号=(物理块号 mod(磁头数× 扇区数))mod 扇区数
② 已知磁盘地址:
物理块号=柱面号 ×(磁头数 × 扇区数)+磁头号 × 扇区数+扇区号
l 磁头臂是沿半径方向移动的。
l 访问磁盘时,首先要移动磁头臂到相应柱面(磁道)上,然后旋转盘片将指定磁头定位在指定扇区上,最后控制磁头对扇区中的数据进行读写。
⚫ 一次访盘时间由寻道时间、旋转定位时间和数据传输时间组成;
⚫ 寻道时间由于是机械动作,因而所花费的时间最长, 传输时间花费时间最短。
7. 文件存取方式
⚫ 在用户面前,文件呈现的是文件的逻辑结构,这与用户使用文件的方式相适应;
⚫ 在存储介质面前,文件呈现的是文件的物理结构,这与文件所使用存储介质的特性有关;
⚫ 文件的存取方式是文件的逻辑结构和物理结构之间的映射或变换机制;
⚫ 文件常用的存取方法有:顺序存取和随机存取两种方式。
① 顺序存取: 按从前到后的次序依次访问文件的各个信息项。
② 随机存取: 又称直接存取, 即允许用户按任意的次序直接存取文件中的任意一个记录, 或者根据存取命令把读写指针移到文件中的指定记录处读写。
⚫ UNIX 类操作系统的文件系统采用了顺序存取和随机存取两种方法。
8. 文件目录
⚫ 在一个计算机系统中保存有许多文件,用户在创建和使用文件时只给出文件的名字,由文件系统根据文件名找到指定文件。
⚫ 为了便于对文件进行管理,设置了文件目录,用于检索系统中的所有文件。
⚫ 文件系统的一个特点是“按名存取”,即用户只要给出文件的符号名就能方便地存取在外存空间的该文件的信息,而不必了解和处理文件的具体物理地址。
9. 文件目录块(FCB)
⚫ 文件控制块 FCB 是系统为管理文件而设置的一个描述性数据结构。FCB 是文件存在的标志,它记录了系统管理文件所需要的全部信息。
⚫ FCB 通常应包括以下内容: 文件名、文件号、用户名、文件地址、文件长度、文件类型、文件属性、共享计数、文件的建立日期、保存期限、最后修改日期、最后访问日期、口令、文件逻辑结构、文件物理结构,等等,
⚫ 其中文件名、文件大小、文件创建时间和磁盘起始地址是文件控制块中必须保存的信息。
⚫ 在文件控制块中的信息可以分成文件存取控制信息、文件结构信息和文件管理信息。
10. 目录文件
⚫ 多个文件的文件控制块集中在一起组成了文件的目录。
⚫ 通常,文件目录以文件的形式保存起来,这个文件就被称为目录文件。目录文件是长度固定的记录式文件。
⚫ 在目录文件中,每个文件的文件控制块又称为目录文件中的目录项。
⚫ 有时,为了节省内存的空间,就把目录文件保存在外存储器上,在需要时才把目录文件调入内存。
11. 目录结构
1)</