操作系统原理教程
第 4章 文件管理
本章教学目标
?
? 熟悉文件的概念、分类、文件的组织
? 掌握磁盘的调度算法
? 熟悉文件目录的管理、文件的保密与保
护方法
? 熟悉文件的使用
本章教学内容
?
? 4.1 文件管理概述
? 4.2 文件的组织
? 4.3 文件的存储设备
? 4.4 文件的目录管理
? 4.5 文件的共享与安全
? 4.6 文件的使用
4.1 文件管理概述
? 4.1.1 文件管理的主要任务
? 4.1.2 文件管理的主要功能
? 4.1.3 文件系统的基本概念
4.1.1 文件管理的主要任务
? 文件管理,即构成一个文件系统,负责管理在
外存上存放的文件,并把对文件的存取、共享
和保护等手段提供给操作系统和用户。
? 文件管理的主要目标是提高外存储空间的利用
率。
? 它的主要任务是对用户文件和系统文件进行管
理,方便用户使用,并保证文件的安全性。
4.1.2 文件管理的主要功能
? 1.文件存储空间管理
? 2.文件目录管理
? 3.逻辑文件与物理文件的转换
? 4.文件读写管理
? 5.文件共享和安全的管理
1.文件存储空间管理
? 存储管理的任务是为每个文件分配必要
的外存空间,提高外存的利用率,并能
有助于提高文件系统的工作速度。
? 由于文件存储设备是以块为单位进行管
理的,因此,文件存储空间的管理实质
上是一个空闲块的组织和管理问题,它
包括空闲块的组织,空闲块的分配与空
闲块的回收。
2.文件目录管理
? 为实现文件的按名存取,每个文件首先
应该具有一个文件名与之对应。
? 目录管理的任务是为每个文件建立目录
项,并对众多的目录加以组织,以实现
方便的按名存取,实现文件的共享,提
供快速的目录查询手段,提高文件的检
索速度。
3.逻辑文件与物理文件的转换
? 逻辑文件:规定用户直接使用的文件。
? 物理文件:存储介质上的文件。
? 用户使用文件时只要给出文件的名字和一些适
当的说明信息,文件系统就能按照用户的要求
把逻辑文件组织成物理文件存放到存储介质上,
或者把存储介质上的物理文件转换成逻辑文件
供用户使用。
? 文件系统还可根据需要更换文件存放的位置而
对用户没有任何影响。
4.文件读写管理
? 文件系统读写控制的主要任务:
– 一是,对于拥有读写和执行权限的用户,允
许其对文件进行相应的操作。
– 二是,对于没有相应权限的用户,禁止他们
对文件进行相应的操作。
– 三是,防止一个用户冒充其他用户对文件进
行读写操作。
– 四是,防止拥有存取权限的用户误用文件。
5.文件共享和安全的管理
? 文件共享是指不同的用户共同使用同一
个文件。
? 文件的安全管理即文件的保护,是解决
文件的非法操作的关键。
4.1.3 文件系统的基本概念
? 1.文件
? 2.记录
? 3.数据项
? 4.文件类型
? 5.文件系统模型
1.文件
? 文件是指存放在外存上的已命名的一组
相关信息的集合。
? 通常将程序和数据组织成文件。
? 文件中的基本访问单位可以是位、字节
或记录。
? 文件的属性包括文件类型、文件长度、
文件的物理位置、文件的存取控制、文
件的建立时间。
2.记录
? 记录是一组相关数据项的集合,用于描
述数据对象某方面的属性。
? 它是文件中数据处理的基本单位,是组
成文件的基本元素。
3.数据项
? 数据项是指描述一个对象的某种属性的
字符集,它是数据处理的最小单位。
? 它可以分为
– 基本数据项:是用于描述一个对象的某种属
性的字符集,是数据组织中可以命名的最小
逻辑数据单位,即原子数据,又称为数据元
素或字段。
– 组合数据项:由若干个基本数据项组成,简
称组项。
4.文件类型
? ( 1)按性质和用途分类
– 系统文件、用户文件、库文件
? ( 2)按文件中的数据形式分类
– 源文件、目标文件
? ( 3)按文件的存取控制属性分类
– 只执行文件、只读文件、读写文件
? ( 4)按文件的逻辑结构分类
– 有结构文件、无结构文件
? ( 5)按文件的物理结构分类
– 顺序文件、链接文件、索引文件
? ( 6)按照文件的内容分类
– 普通文件、目录文件、特殊文件
5.文件系统模型
? 文件系统是指含有大量文件及其属性说
明的,对文件进行操纵和管理的,向用
户提供使用接口的软件集合。图 4-1表示
了文件系统的模型。
? 它分为三个层次
– 最低层是对象及其属性说明;
– 中间层是对对象进行操纵和管理的软件集合;
– 最高层是文件系统提供给用户的接口。
4.2 文件的组织
? 文件的组织是指文件的构造方式,即文
件的结构。对任何一个文件,都存在着
两种形式的结构:逻辑结构和物理结构。
? 4.2.1 文件的逻辑结构
? 4.2.2 文件的物理结构
? 4.2.3 记录的成组和分解
4.2.1 文件的逻辑结构
? 1.文件逻辑结构的概念
? 2.文件逻辑结构的形式
1.文件逻辑结构的概念
? 文件的逻辑结构( File Logical Structure)是用
户用户组织文件时可见的结构,即用户所观察
到的文件组织形式。
? 文件的逻辑结构是用户可以直接处理的数据及
其结构,它独立于物理特性,又称为文件组织 。
? 选择文件的逻辑结构主要有以下原则:
– ( 1)提高检索效率
– ( 2)便于修改
– ( 3)降低文件存储费用
– ( 4)便于用户操作
2.文件逻辑结构的形式
? 文件的逻辑结构从形式上分为两类:
– 有结构的记录式文件:
? 在记录式文件中,所有的记录通常都是属于一个
实体集的,有着相同或不同数目的数据项。记录
的长度可分为定长和不定长两类。
– 无结构的流式文件
? 是指由字符流构成的文件。流式文件内的数据不
再组成记录,只是一串字节。对流式文件的存取
需要指定起始字节和字节数。
4.2.2 文件的物理结构
? 1.文件物理结构的概念
? 2.文件物理结构的形式
? 3.文件的访问方式
1.文件物理结构的概念
? 文件的物理结构,又称为文件的存储结构,它
是指文件在外存上存储时的组织结构。
? 文件的物理结构与存储介质的物理特性及用户
对文件的访问方式有关。
? 文件的物理结构通常划分为大小相等的物理块,
也称为物理记录。它是文件分配及传输信息的
基本单位。物理记录的大小与物理设备有关,
与逻辑记录的大小无关。
2.文件物理结构的形式
? 三种文件物理结构组织文件:
– 顺序结构:顺序结构将一个在逻辑上连续的文件信
息依次存放在外存连续的物理块中 。
– 链接结构:链接结构将文件存放在外存的若干个物
理块中,这些物理块不必连续,并且在每一个物理
块中设一个指针,指向下一个物理块的位置,从而
使得存放同一个文件的物理块链接起来。
– 索引结构:将文件存放在外存的若干个物理块中,
并为每个文件建立一个索引表,索引表中的每个表
目存放文件信息的逻辑块号和与之对应的物理块号。
3.文件的访问方式
? ( 1)顺序访问
– 是指用户从文件初始数据开始依次访问文件中的信
息。对记录式文件意味着按记录的编号从小到大进
行存取,对流式文件则意味着对文件从头至尾进行
存取。顺序访问的特点是访问速度快,不需要计算
访问信息的位置,适合于数据的统计和汇总等。
? ( 2)直接访问(随机访问)
– 直接访问是指用户随机地访问文件中的某段信息。
要支持用户以直接访问方式访问文件,文件必须存
放在可以支持快速定位的随机存储设备中。
4.2.3 记录的成组和分解
? 1.记录的成组
– 是指把若干条逻辑记录合并成一组存入一个
物理块的过程。
? 2.记录的分解
– 是指从一条物理记录中把逻辑记录分离出来
的过程。
4.3 文件的存储设备
? 4.3.1 文件存储设备的类型
? 4.3.2 磁盘的驱动调度算法
? 4.3.3 存储空间的分配与回收
? 4.3.4 存储空间的分配举例
4.3.1 文件存储设备的类型
? 1.顺序存储设备
? 2.直接存储设备
1.顺序存储设备
? 顺序存储设备是按信息的物理位置进行定位和读
/写操作的存储设备。在顺序存储设备中,只有
前面的物理块被存取之后,才能存取其后的物理
块。
? 磁带就是一种典型的顺序存取设备 。
? 【 例 4-1】 假定磁带记录密度为每英寸 800字符,
每一逻辑记录为 160字符,块间隙为 0.6英寸。今
有 1500个逻辑记录需要存储,试计算磁带的利用
率?若要使磁带空间利用率不少于 50%,至少应
以多少个逻辑记录为一组?这说明了什么问题?
2.直接存储设备
? 是允许文件系统直接存取对应存储介质上的任意物理
块的存储设备。
? 磁盘就是典型的直接存储设备。
? 由于磁带是一种顺序存储设备,用它存储文件时应采
用顺序结构存放,顺序存取时效率较高。磁盘是直接
存储设备,三种文件物理结构都可采用,实际存储时
可根据文件的使用情况来确定。如果文件是顺序存取
的,采用顺序结构和链式结构都可以;若采用直接存
取方式且文件大小不固定,应采用索引方式,若文件
大小固定,也可以采用顺序结构。
2.直接存储设备
? 【 例 4-2】 某软盘有 40个磁道,磁头从一个磁道
移到另一个磁道需要 6ms。文件在磁盘上非连
续存放,逻辑上相邻数据块的平均距离为 13磁
道,每块的旋转延迟时间及传输时间分别为
100ms,25ms,问读取一个 100块的文件需要多
少时间?如果系统对磁盘进行了整理,让同一
个磁盘块尽可能靠拢,从而使逻辑上相邻的数
据块的平均距离降为 2磁道,这时读取一个 100
块的文件需要多少时间?
4.3.2 磁盘的驱动调度算法
? 1.移臂调度
– ( 1)先来先服务( FCFS)
– ( 2)最短寻道时间优先( SSTF)
– ( 3)扫描算法( SCAN)或电梯调度算法
– ( 4)循环扫描算法( CSCAN)
? 2.旋转调度
( 1)先来先服务( FCFS)
? 先来先服务调度算法是按请求访问者的
先后次序启动磁盘驱动器, 而不考虑它
们要访问的物理位置 。
? 采用这种调度算法, 只需要对访问磁盘
的作业排队, 新来的访问者排在队尾,
始终从队首取出访问者访问磁盘, 直到
该队列为空 。
( 2)最短寻道时间优先
( SSTF)
? 最短寻道时间优先调度算法总是让离当前磁道
最近的请求访问者启动磁盘驱动器, 即是让查
找时间最短的那个作业先执行, 而不考虑请求
访问者到来的先后次序, 这样就克服了先来先
服务调度算法中磁臂移动过大的问题 。
? 采用这种调度算法, 需要为请求访问磁盘的作
业设置一个队列, 随着当前磁道的改变, 不断
计算后续访问者与当前磁道的距离, 让距离最
短的访问者访问磁盘, 新的当前磁道为最新访
问的磁道 。
( 3)扫描算法( SCAN)或电
梯调度算法
? 扫描调度算法总是从磁臂当前位置开始, 沿磁臂的移
动方向去选择离当前磁臂最近的那个柱面的访问者 。
如果沿磁臂的方向无请求访问时, 就改变磁臂的移动
方向 。 在这种调度方法下磁臂的移动类似于电梯的调
度, 所以它也称为电梯调度算法 。
? 采用这种调度算法, 需要为访问者设置两个队列, 根
据磁头的移动方向, 能访问到的访问者由近及远排队,
背离磁头移动方向的访问者也由近及远排为另一队 。
先按磁头移动方向队列调度访问者访问磁盘, 当该方
向没有访问者时, 再改变方向, 选择另一个访问者队
列访问磁盘 。
( 4)循环扫描算法( CSCAN)
? 循环扫描调度算法是在扫描算法的基础
上改进的。磁臂改为单项移动,由外向
里。当前位置开始沿磁臂的移动方向去
选择离当前磁臂最近的哪个柱面的访问
者。如果沿磁臂的方向无请求访问时,
再回到最外,访问柱面号最小的作业请
求。
2.旋转调度
? 旋转调度采用的是延迟时间最短者优先
算法。当磁臂定位后,等待访问该柱面
的若干个访问者可能要求访问同一磁道
上的不同扇区,也可能要求访问不同磁
道上的扇区。旋转调度总是对先到达磁
头位置上的扇区进行信息传送操作,若
访问的扇区号相同,则应分多次进行旋
转调度。
磁盘的驱动调度算法举例
? 【 例 4-3】 若磁头的当前位置为 100磁道,磁头正向磁
道号增加的方向移动。现有一磁盘读写请求队列,23、
376,205,132,19,61,190,398,29,4,18,40。
若采用先来先服务、最短寻道时间优先和扫描(电梯
调度)算法,试计算平均寻道长度各为多少?
? 【 例 4-4】 磁盘请求以 10,22,20,2,40,38柱面的
次序到达磁盘驱动器 。 寻道时每个柱面移动需要 6ms,
计算以下寻道次序和寻道时间 。
? ( 1) 先来先服务
? ( 2) 电梯调度算法 ( 起始向磁道号大的方向移动 )
? 在所有情况下磁头臂起始都位于柱面 20号上 。
4.3.3 存储空间的分配与回收
? 1.顺序结构与连续分配
? 2.链接结构与链接分配
? 3.索引结构与索引分配
1.顺序结构与连续分配
? ( 1)基本原理:
– 连续分配要求为每一个文件分配一组相邻接的盘块。一组盘块的地址定
义了磁盘上的一段线性地址。因其采用空闲文件目录登记磁盘的空闲区,
所以该分配方法也称为空闲文件目录法。
? ( 2)采用的数据结构
– 有文件目录、空闲文件目录。
? ( 3)外存空间的分配与回收
– 当请求分配外存空间时,系统依次扫描空闲文件目录的记录,直到找到
一个合适的空闲文件为止,在文件目录中填入该文件的文件名和所分配
的始址末址,并修改空闲文件目录中相应的表目。否则,提示空间不足。
– 当用户撤消一个文件时,系统根据文件目录,找到该文件在外存中的始
址和末址,对空闲文件目录进行调整。它有 4种情况,与可变分区管理的
空闲区整理相同。最后,删除该文件在文件目录中的记录。
2.链接结构与链接分配
? ( 1)基本原理
– 是将文件存放在外存的若干个物理块中,这些物理块不必连续,并且
在每一个物理块中设一个指针,指向下一个物理块的位置,从而使得
存放同一个文件的物理块链接起来。
? ( 2)采用的数据结构
– 有文件目录、空闲块链。
? ( 3)外存空间的分配与回收
– 当请求分配外存空间时, 系统依次从空闲块链中, 取下几块分配给该
文件, 把最后一物理块的指针设为空值, 并调整空闲块链的头指针 。
在文件目录中增加一条记录, 填入该文件的文件名和首块地址 。 若空
间不足, 则给出提示 。
– 当用户撤消一个文件时, 系统根据文件目录, 收回其存储空间 。 它将
收回的空闲块依次链入空闲块链首, 并删除该文件在文件目录中的记
录 。
3.索引结构与索引分配
? ( 1)基本原理
– 将文件存放在外存的若干个物理块中,并为每个文
件建立一个索引表,索引表中的每条记录存放文件
信息的逻辑块号和与之对应的物理块号。系统通过
文件索引表来完成对文件的操作。
? ( 2)采用的数据结构
– 整个系统设置了一个文件目录和一个位示图,为每
个文件设置了一个索引表。
? ( 3)外存空间的分配与回收
4.3.4 存储空间的分配举例
? 【 例 4-5】 有一磁盘组共有 10个盘面,每个盘面上有
100个磁道,每个磁道有 16个扇区。假定分配以扇区为
单位,若使用位示图管理磁盘空间,问位示图需要占
用多少空间?若空闲文件目录的每条记录占用 5个字节,
问什么时候空闲文件目录大于位示图?
? 【 例 4-6】 设某文件为链接文件,由 5个逻辑记录组成,
每个逻辑记录的大小与磁盘块大小相等,均为 512字节,
并依次存放在 50,121,75,80,63号盘块上。若要存
取文件的第 1569逻辑地址处的信息,问要访问哪一个
磁盘块?
4.4 文件的目录管理
? 4.4.1 文件目录的基本概念
? 4.4.2 一级目录
? 4.4.3 二级目录
? 4.4.4 多级目录
? 4.4.5 目录管理举例
4.4.1 文件目录的基本概念
? 1.文件的组成
– 文件体:即文件本身,比如前面介绍过的记录式文件
或字符流式文件。
– 文件控制块。也叫文件说明,它是为文件设置的用于
描述和控制文件的数据结构,其中包括文件名、文件
类型、文件结构、文件的存储位置、文件长度、文件
的访问权限、文件的建立日期和时间等各种属性。
? 2.文件目录
– 是指存放文件有关信息的一种数据结构。它包含多条
记录,每条记录为一个文件的文件控制块( FCB)的
有关信息。
4.4.2 一级目录
? 1.基本原理
– 它采用的方法是为外存的全部文件设立一张如图 4-17所示的目
录表。表中包括全部文件的文件名、存储文件的物理地址,
以及文件的其他属性,如文件长度、文件类型等等。每个文
件占据表中的一条记录。该目录表存放在外存的某个固定区
域,需要时系统将其全部或部分调入主存。
? 2.特点
– ( 1)目录结构易于实现,管理简单
– ( 2)易发生重名问题
– ( 3)当文件较多时,查找时间较长
– ( 4)不便于实现文件共享
4.4.3 二级目录
? 1.基本原理
– 将文件目录分成主文件目录和用户文件目录两级。
在二级目录中,各个文件的说明信息被组织成目录
文件,然后以用户为单位把各自的文件说明划分成
组。
? 2.特点
– ( 1)提高了检索目录的速度。
– ( 2)可以解决用户文件重名问题。
– ( 3)可以使不同用户共享同一个文件。
– ( 4)可实现对文件的保护和保密作用。
– ( 5)二级文件目录虽然解决了不同用户之间文件同名的问题,
但同一用户的文件不能同名。
4.4.4 多级目录
? 1.基本原理
– 把二级目录的层次关系加以推广,就形成了多级目
录。最高层为根目录,最低层为文件。
– 当要访问某个文件时,往往使用该文件的路径名来
标识文件。文件的路径名是从根目录出发,直到所
要找到的文件 。
? 2.特点
– ( 1)层次清楚
– ( 2)解决了用户文件重名问题
– ( 3)搜索速度快
4.4.5 目录管理举例
? 【 例 4-7】 假定磁盘块的大小为 1KB,对
于 540MB的硬盘,其文件分配表 FAT需
要占用多少存储空间?当硬盘容量为
1.2GB时,FAT需要占用多少空间?
4.5 文件的共享与安全
? 4.5.1 文件共享
? 4.5.2 文件安全
4.5.1 文件共享
? 1.基本概念
– 文件共享是指一个文件可以被多个授权的用户共同
使用。
– 文件的共享要解决两个问题。一是如何实现共享,
二是对各类共享文件的用户进行存取控制。
? 2.实现文件共享的方法
– ( 1)绕弯路法
– ( 2)连访法
– ( 3)基本目录法
4.5.2 文件安全
? 文件的安全是指避免合法用户有意或无意的错
误操作破坏文件,或非法用户访问文件。
? 1.文件保护
– 是指避免文件因有意或无意的错误操作使文件受到
破坏。
? 2.文件保密
– 是指文件本身不得被未授权的用户访问,即防止他
人窃取文件。
4.6 文件的使用
? 4.6.1 文件的存取方法
? 4.6.2 文件的操作
? 4.6.3 文件使用的步骤
4.6.1 文件的存取方法
? 根据对文件中记录的存取次序,存取方
法可以分为
– 顺序存取:是指按文件中的记录顺序依次进
行读或写操作的存取方法。
– 随机存取,是指以任意的次序随机的读或写
文件中的记录。
4.6.2 文件的操作
? 1.“建立”操作
– 把一个新文件存放到存储介质上
? 2.“打开”操作
– 使用一个已经存放在存储介质上的文件
? 3.“读 /写”操作
– 要读 /写文件记录
? 4.“关闭”操作
– 在进行“读 /写”操作完之后,需要执行“关闭”操
作。
? 5.“删除”操作
– 删除文件
4.6.3 文件使用的步骤
? ( 1)读文件的步骤
–, 打开, 文件
–, 读, 文件
–, 关闭, 文件
? ( 2)写文件的步骤
–, 建立, 文件
–, 写, 文件
–, 关闭, 文件
本章小结
? 文件管理的主要任务是分配外存空间,对用户文件和系统文件进行管理,方
便用户使用,并保证文件的安全性。
? 主要目的是提高外存的使用效率和方便用户读文件的使用。
? 主要功能是文件存储空间的管理、文件目录的管理、文件读写的管理、文件
共享和安全的管理。
? 熟悉和掌握以下基本概念:
– 文件、记录、数据项、文件系统、记录的成组、记录的分解、文件目录
? 熟悉和掌握以下基本知识:
– 1.文件的类型 2.文件的组织
– 3.文件的存储设备 4.磁盘调度
– 5.磁盘空间的分配与回收 6.文件目录
– 7.文件共享 8.文件安全
习 题
? 一、单项选择题
– 1—20题
? 二、填空题
– 1—15题
? 三、判断题
– 1—10题
? 四、名词解释题
– 1—10题
? 五、简答题
– 1—6题
? 六、应用题
– 1—12题