460 likes | 624 Views
第五章 文件管理. 文件系统的引入 文件系统的功能 文件组织;逻辑组织和物理组织。 文件控制快( FCB ) 文件目录 磁盘空间的管理 文件共享和保护 文件的使用. 文件系统的引入. 早期的计算机系统:用户自己管理程序和数据。 大容量的存储设备的出现(磁带,磁盘) 如何区分存储设备上的不同数据? 如何存取设备上的数据? 如何保护设备上的数据不被非法使用? 如何实现不同用户共享文件? 引入了一个逻辑概念:文件。. 文 件. 命名了的数据项的集合。 每一个文件都有一个唯一的 文件名 。 对文件实现 “ 按名存取 ” 。
E N D
第五章 文件管理 • 文件系统的引入 • 文件系统的功能 • 文件组织;逻辑组织和物理组织。 • 文件控制快(FCB) • 文件目录 • 磁盘空间的管理 • 文件共享和保护 • 文件的使用
文件系统的引入 • 早期的计算机系统:用户自己管理程序和数据。 • 大容量的存储设备的出现(磁带,磁盘) • 如何区分存储设备上的不同数据? • 如何存取设备上的数据? • 如何保护设备上的数据不被非法使用? • 如何实现不同用户共享文件? • 引入了一个逻辑概念:文件。
文 件 • 命名了的数据项的集合。 • 每一个文件都有一个唯一的文件名。 • 对文件实现“按名存取”。 • 用户只需给出文件的名字,就可以方便地使用文件,而不必关系文件的物理存储位置。 • 那么,谁来负责存取和管理外存上的文件呢?
文件系统 • 存取和管理外存储器上的文件的机构。 • 统一管理信息资源的一种软件。 • 管理文件的存储、检索、使用; • 提供安全、可靠的共享和保护手段; • 并且方便用户使用。 • 问题:系统中的文件很多,如何有效的管理?
文件分类 • 按用途分: • 系统文件:操作系统和各种系统应用程序和数据组成的文件。用户只能通过系统调用访问。 • 库文件:标准子程序及常用应用程序组成的文件。 • 用户文件:用户委托系统保存的文件。
按文件保存期限 • 临时文件:用来存放中间结果,一旦作业完成,文件会自动删除。(temp目录) • 永久文件:数据需要长期保存的文件。 • 档案文件:保存在作为“档案”用的磁带或光盘等永久介质上、以备查证和恢复时使用的文件。
按文件组织方式 • UNIX系统中的文件类型 • 普通文件:由一般信息组成的文件。 • 目录文件:由文件的目录构成的特殊文件;用来检索文件的目录信息。 • 特殊文件:把设备看作是文件。对文件的操作转化成对设备的操作。与设备驱动程序紧密联系。
按文件的保护方式 • 只读文件 • 读写文件 • 可执行文件 • 无保护文件
按信息的流向 • 输入文件 • 输出文件 • 输入输出文件
文件系统的功能 • 使用户能够方便地创建和删除一个文件。 • 使用户能够方便地构造自己的文件。 • 文件共享:允许多个用户使用同一个文件。 • 文件通信:文件之间传输数据。 • 文件的按名存取。 • 提供可靠的保护和保密措施。 • 为防止意外事故,文件系统应有转储和恢复文件的能力。
文件操作功能 • 对整体文件而言: • 建立文件(create):构造一个新文件。 • 撤消 文件(destroy):删除一个文件。 • 打开文件(open) • 关闭文件(close) • 复制文件(copy) • 打印文件(print) • 文件重命名(rename) • 等等。
文件操作功能 • 对文件中的内容 • 读(READ) • 写(WRITE) • 添加(INSERT) • 删除( DELETE ) • 修改(UPDATE)
文件系统的组成 系统故障恢复 外存管理 物理 文件 用户 文件组织 和存取 存取过程 I/O系统
文件系统的组成 • 文件组织和存取: • 同用户的接口。 • 提供了定义逻辑文件的各种逻辑组织和方法。 • 提供存取文件用的命令结构。
文件系统的组成 • 存取过程 • 管理和查阅文件目录。 • 打开和关闭文件 • 文件名转换成物理地址。 • 文件存取权限的管理 • 管理内部缓冲区 • 生成相应的I/O程序。
文件系统的组成 • I/O系统 • 管理I/O请求队列 • 调用和启动I/O操作 • 处理I/O错误。 • I/O结束处理 • 与设备管理密切联系。
文件系统的组成 • 外存管理 • 外存空间的管理:记住哪些已经分配,哪些空闲。 • 根据请求分配磁盘空间。 • 回收外存块。 • 多级文件系统中传送文件信息的功能。 • 系统故障与恢复:当发生故障时,具有恢复文件系统和整个操作系统的能力。
文件的转储和恢复 • 系统中的天灾和人祸 • 火灾、雷电、水灾 • 硬盘损坏,软件故障 • 人为破坏(恶意删除、修改、破坏) • 转储与恢复 • 使一些重要的文件有多个副本。
常用的转储方法 • 全量转储:把文件存储器中的所有文件,定期复制到磁带上。 • 转储时系统必须停止向用户开放 • 很费机时 • 当发生故障时,只能恢复上次转储的信息,而丢失了从上次转储以来的新变化和增加的信息。 • 增量转储:只复制变化的数据。对修改过和增加的文件做上标志。
文件组织 • 用户的观点 • 逻辑结构清晰 • 使用方便 • 逻辑结构 • 系统的观点 • 存放在外存储介质上的 • 物理结构
文件的逻辑结构 • 设计文件逻辑结构的原则 • 有利于用户对文件信息的操作。 • 易于操作 • 查找快捷 • 修改方便 • 空间紧凑:使文件的信息占据近可能少的存储空间。
文件的逻辑结构 • 无结构的字符流式的文件 • 构成文件的基本单位是字符。 • 源程序文件;目标代码文件等 • 有结构的记录文件 • 构成文件的基本单位是记录。 • 定长记录文件:根据记录号和记录长度来确定逻辑记录地址。 • 不定长记录文件
文件的物理组织-顺序文件 • 一个文件将在逻辑上连续的信息存放到磁盘依次相邻的块上。 • 物理顺序和逻辑顺序一致。 • 存储介质:磁带。 • 只读或只写文件(备份和恢复)。 • 适合顺序存取。 • 缺点 • 文件不能动态增长。顺序文件的物理块必须是连续的。 • 分配存储空间时,出现很多碎片。
文件的物理组织-索引文件 • 索引文件:非连续存储的一种方法。 • 索引表:记录号与地址的对应表。 • 顺序存取或随机存取。 • 额外的开销(索引表)。
文件的物理组织(续) • 多重索引文件 • 如果文件很大,则索引表也会很大,索引表占有太多的内存空间。 • 文件的大小是可以变化的。 • 在索引表中得到的块号,该块中存放的的是另一组块号。 磁盘块 索引表 二重索引
文件的物理组织(续) • 链接组织:存储空间是不连续的。 • 逻辑组织与物理组织独立。 • 每一个物理块的最后一个单元存放下一块的链接指针。 • 如果链接指针为0,表示文件结束。 • 又称“串联文件”。 • 只能顺序存取。 • 便于插入和删除。 3 0 7 15 文件目录
文件控制块 • 文件组成:文件控制块和文件体。 • 文件控制块:描述文件信息的数据结构。每一个文件都有一个文件控制块。 • FCB中的内容:满足操作系统对文件管理和控制的需求,如逻辑地址到物理地址的转换、文件共享、文件保护等等。 • 标识信息:文件名;用户名;内部名。 • 物理地址信息:物理组织(顺序、随机);物理地址;记录格式(定长、不定长)。
FCB的内容(续) • 文件性质 • 历史信息和测量信息:文件长度,建立时间,修改时间等。 • 文件共享信息。 • 文件保护信息:口令或密码;存取方式;增删说明等。 • 其它。
文件目录 • 每一个文件都有一个文件控制块(FCB),当访问一个文件时,根据文件名查FCB,得到文件的物理地址。 • 磁盘容量很大,FCB也很多,如何提高查找的效率? • FCB的组织----目录 • 目录:FCB的有效集合。 • 注意:目录与目录项、目录文件和文件目录的区别。
目录组织 文件 FCB1 FCB2 • 一级目录: 文件 若不同的用户为文件起了相同的名字,怎么办? 文件重名问题!
文件目录—二级目录 UFD FCB1 MFD 用户名 目录地址 U1 文件 U2 UFD 解决文件重名问题;实现共享和保护。
目录组织—多级目录 文件 文件 便于文件的分类组织。
目录管理 • 路径:相对路径和绝对路径。 • 将整个目录放在内存中,不现实。 • 当前目录:在内存中开辟一个缓冲区,将当前目录信息放在内存中。 • 在DOS的CONFIG中,有一条命令LASTDRV,用来确定缓冲区的多少。 • 文件打开:把文件的目录项从外存读到内存。 • 文件关闭:把目录项回写到外存。
文件共享和保护 • 文件共享:多个用户使用同一个文件。 • 基本文件目录(BFD)和符号文件目录(SFD) SFD BFD 文件名 SFD地址 文件的内部标识符:文件在BFD中的表序号。
文件共享和保护(续) • 活动文件表和活动符号名表(用户打开文件表) • 当打开一个文件时,系统就在活动文件表中添加一个表项,将文件在BFD中的内容从外存读入内存,写到活动文件表中。 • 一个系统只有一张活动文件表。 • 同时,在用户打开文件表中添加一个表项,将文件在活动文件表中的序号填入。 • 此文件在用户打开文件表中的序号就是我们常说的“句柄(handle)”。
用户打开文件表 PCB 活动文件表 0 1 5 0 1 2 3 ifcb 015
文件保护 • 防止文件被非授权的用户窃取、破坏等。 • 备份:全量转储和增量转储。定期和不定期。 • 口令。 • 加密技术。 • 存取控制。 • 存取控制矩阵。 • 存取控制表。 • 存取权限表。
存取控制矩阵 用户: 文件: 文件 权限 用户 权限 存取控制表
磁盘空间的管理 1、空闲空间的管理 (1)位示图:用一个位来表示一个块。如果字长为32位,则字号、位号、块号之间的关系是: 块号=字号*字长+位号 字号=[块号/字长] 位号=块号 MOD 字长 (2)空闲空间链:在空闲块中利用几个字节,存放下一空闲块的块号。
2 成组链接法
磁盘空间管理 (3)空闲空间表 必须连续分配。
记录的成组与分解 • 引例: 现有一文件FILE_X,其逻辑记录的大小为125字节,共有20个逻辑记录,文件系统把这个文件存储到磁盘上时采用链接结构,磁盘的分块大小为512个字节,请问: • (1)采用什么方法可有效地利用磁盘空间? • (2)画出文件在磁盘上的链接示意图(磁盘块号自定)。 (3)若用户要求访问读包含第1285字节的逻辑记录,文件系统将如何工作?
记录成组与分解 • 成组:将若干个逻辑记录存放在同一个逻辑块中。 • 当访问某个逻辑记录时,必须将整个块先读到内存中。 • 分解:从物理块中读取某个逻辑记录。 磁盘 块 缓冲区 记录 进程内存区
块因子 • 一个物理块中包含的逻辑记录的个数。 • 块因子=[物理块/逻辑块] • 上例中:[512/125]=4 • 所以,块因子为4,也就是说,一个物理块中可以存放4个逻辑记录。 • 总共需要:20/4=5个物理块。
分解 • 第一步:计算记录所在的块: 逻辑记录号:[1285/125]+1=11 所在块:[11/4]+1=3 • 第二步:将第三块读入内存缓冲区。 • 第三步:从缓冲区中读取逻辑记录。 计算相对记录号:11 MOD 4=3 将第三个记录读到内存区。
习 题 某文件系统使用1K字节的物理块和16位的盘地址,FCB中含有8个物理块号以及一个一重间接索引块指针和一个二重间接索引块指针,那么一个文件最大可达多少?