操作系统(四)——文件管理

2020-04-05  本文已影响0人  花卷呀花卷
image.png

系统中的文件实际上是一个对象,包含数据和一系列操作。用户对文件进行读写产生了数据,而读写过程需要完成逻辑结构和物理结构上的转换、组织文件在磁盘上存放。

(一)文件形式

1. 概念

1.1 什么是文件?

文件=程序+数据,可以长期存放在硬盘或者存储器中,其中数据可以数字、字母或者二进制代码,不同的数据组织形式形成不同多文件逻辑结构——无结构文件和有结构文件。

1.2 如何描述文件?

当我们向对方介绍自己时,总会先介绍关于自己的一些基本信息,比如来自哪,年龄和喜好等等,这些用于描述个人的信息可以称为属性。文件也需要一些基本属性来描述,这些基本属性都保存在目录结构中。
常用的文件属性有:

image.png

1.3 可以对文件进行哪些基本操作?

由操作系统提供调用对文件进行基本操作:

2. 逻辑结构

因为数据的组织方式不同,也就有不同的文件逻辑结构。

2.1 有哪些数据组织方式?

当数据以字符流的形式记录,比如以二进制、或字符形成文件,则称为无结构文件;
而数据以一组记录的方式组成,例如在校学生记录,则成为有结构文件。

2.2 无结构文件

常见的无结构文件有源程序文件、目标代码文件。它们以字节为单位,对记录的访问只能通过穷举搜索的方法,管理简单,方便用户对其操作,但是对信息单位操作多的文件不适用。

2.3 有结构文件

有结构文件可以分为以下四种:

image.png

3. 目录结构

目录结构除了包含记录单个文件信息的文件目录,还需要一定的组织文件结构来提高检索速度。

1. 文件目录包含哪些内容?

文件目录作为查找文件的指路人,不仅要清楚文件名,还要知道查找文件的路径。

image.png

2. 如何组织文件目录?

有四种方式组织文件:单级目录结构、二级目录结构、多级目录结构和无环图目录结构。

image.png image.png image.png image.png

4. 文件共享

有时候多个用户或进程需要共享同一个文件,如果不能提供共享文件,会因每个用户有各自的副本导致存储空间的浪费。常用的文件共享方式有:基于索引结点的共享方式(硬链接)利用符号链实现文件共享(软链接)

某个用户删除共享文件.png image.png

5. 文件保护

对文件的保护通常采用事前预防机制:访问控制、口令保护和加密保护。

1. 访问控制

对文件的访问控制从设置文件访问类型出发,文件访问类型主要有:

通过对用户划分权限来达到访问控制目的,因此要为每个文件和目录增加一个访问控制列表。常用的是精简的访问列表,该列表将用户分为三类:

2. 口令和密码

(二)实现

了解了文件结构、目录结构,这都是逻辑结构,通过目录查找文件如何实现?

1. 层次结构

首先对用户查找某个文件的过程有大致了解,下图为某用户读取文件示意图:

image.png

1.用户要查看文件F -> 对操作系统发出命令(第一层)
2.操作系统得到命令 -> 查找目录 -> 查找文件F的索引信息
3.查看FCB -> 用户是否有访问该文件的权限(第二层)
4.验证通过开始寻址 -> 通过逻辑文件系统与文件信息缓冲区找到逻辑地址(第三层)
5.把逻辑地址转换为物理地址(第四层)
6.如果要删除文件 -> 辅助分配模块;如果用于给设备进行输入/输出 ->设备管理程序模块

2. 目录实现

文件通过目录进行查找,目录实现方式有两种:线性列表哈希表

image.png

3. 文件分配

通常将一个程序文件分类为多个子文件,不仅方便内存调用,也方便存放在磁盘块上。那么文件如何摆放在磁盘上?有三种分配方式——连续分配链接分配索引分配

image.png image.png image.png

对以上三种方式进行比较:


image.png

4. 文件存储空间管理

存储文件前,需要知道磁盘中有哪些空闲区域(物理块),如何分配这些分配这些空闲区域才能提高利用空间。常用管理物理块管理方式有:空闲表法空闲链表法位示图法成组链接法

(三)访问

磁盘如何存放文件?
将磁盘划分为容量相等的磁盘块
1.以圆点为中心,划分成一个个同心圆,一个同心圆之间的面积区域是一个磁道;
2.以圆点为中心,向外划分射线,两条射线与两个同心圆之间的面积区域是一块磁盘块。
文件就存放在这些磁盘块上,当要查找文件时,用磁头臂在这些磁盘块上移动。


clipboard.png

1. 访问时间

查找文件时间=磁头臂寻道时间+延迟时间+传输时间

2. 调度算法

通过调度算法控制磁臂移动方向。常用的调度算法有:先来先服务最短寻找时间优先扫描算法循环扫描算法

image.png image.png

3. 磁盘的管理

对磁盘的管理包括使用前(初始化),使用时(引导块),使用后(坏块)。

上一篇下一篇

猜你喜欢

热点阅读