导航菜单

408

文件管理1. 文件系统基础1.1 文件概念1.2 文件的逻辑结构1.2.1 顺序文件1.2.2 索引文件1.2.3 索引顺序文件 1.3 目录结构1.4 文件共享1.5 文件保护练习2. 文件系统实现2.1 文件系统层次结构2.2 目录实现2.3 文件实现练习3. 磁盘组织与管理3.1 磁盘的结构3.2 磁盘调度算法3.3 磁盘的管理练习

在这里插入图片描述 在这里插入图片描述

1. 文件系统基础 1.1 文件概念

文件系统的管理功能是将其管理的程序和数据通过组织为一系列文件的方式实现的。文件则是指具有文名的若干相关元素的集合。元素通常是记录,记录又是一组有意义的数据项的集合。基于文件系统的概念,可以把数据组成分为数据项、记录和文件三级。 在这里插入图片描述 在这里插入图片描述 操作系统应该向上提供哪些功能? 在这里插入图片描述 在这里插入图片描述

1.2 文件的逻辑结构

按文件是否有结构分类,可以分为无结构文件、有结构文件两种。 无结构文件: 文件内部的数据就是一系列二进制流或字符流组成。又称“流式文件”。如:Windows操作系统中的.txt文件。 有结构文件: 由一组相似的记录组成,又称“记录式文件”。每条记录又若干个数据项组成。如:数据库表文件。一般来说,每条记录有一个数据项可作为关键字(作为识别不同记录的ID)。根据各条记录的长度(占用的存储空间)是否相等,又可分为定长记录和可变长记录两种。

1.2.1 顺序文件

顺序文件: 文件中的记录一个接一个地顺序排列(逻辑上),记录可以是定长的或可变长的。各个记录在物理上可以顺序存储或链式存储。 在这里插入图片描述

1.2.2 索引文件

在这里插入图片描述

1.2.3 索引顺序文件

在这里插入图片描述 若一个顺序文件有10000个记录,则根据关键字检索文件,只能从头开始顺序查找(这里指的并不是定长记录、顺序结构的顺序文件),平均须查找5000个记录。 若采用索引顺序文件结构,可把10000个记录分为√10000 = 100 组,每组100个记录。则需要先顺序查找索引表找到分组(共100个分组,因此索引表长度为100,平均需要查50次),找到分组后,再在分组中顺序查找记录(每个分组100个记录,因此平均需要查50次)。可见,采用索引顺序文件结构后,平均查找次数减少为50+50 = 100次。 同理,若文件共有106个记录,则可分为1000个分组,每个分组1000个记录。根据关键字检索一个记录平均需要查找500+500 = 1000次。这个查找次数依然很多,如何解决呢? 在这里插入图片描述 在这里插入图片描述

1.3 目录结构

在这里插入图片描述

1.4 文件共享

在这里插入图片描述

1.5 文件保护

1)口令保护

为文件设置一个“口令”(如:abc112233),用户请求访问该文件时必须提供“口令”。

优点:保存口令的空间开销不多,验证口令的时间开销也很小。 缺点:正确的“口令”存放在系统内部,不够安全。

2)加密保护 使用某个“密码”对文件进行加密,在访问文件时需要提供正确的“密码”才能对文件进行正确的解密。

优点:保密性强,不需要在系统中存储“密码” 缺点:编码/译码,或者说加密/解密要花费一定时间。

3)访问控制 在每个文件的FCB(或索引结点)中增加一个访问控制列表(Access-Control List, ACL),该表中记录了各个用户可以对该文件执行哪些操作。

在这里插入图片描述 在这里插入图片描述

练习

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 D 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 B 在这里插入图片描述 在这里插入图片描述 D 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

2. 文件系统实现 2.1 文件系统层次结构

在这里插入图片描述 用一个例子来辅助记忆文件系统的层次结构: 假设某用户请求删除文件“D:/工作目录/学生信息.xlsx”的最后100条记录。

用户需要通过操作系统提供的接口发出上述请求——用户接口由于用户提供的是文件的存放路径,因此需要操作系统一层一层地查找目录,找到对应的目录项——文件目录系统不同的用户对文件有不同的操作权限,因此为了保证安全,需要检查用户是否有访问权限——存取控制模块(存取控制验证层)验证了用户的访问权限之后,需要把用户提供的“记录号”转变为对应的逻辑地址——逻辑文件系统与文件信息缓冲区知道了目标记录对应的逻辑地址后,还需要转换成实际的物理地址——物理文件系统要删除这条记录,必定要对磁盘设备发出请求——设备管理程序模块删除这些记录后,会有一些盘块空闲,因此要将这些空闲盘块回收——辅助分配模块 2.2 目录实现

在读文件前,必须先打开文件。打开文件时,操作系统利用路径名找到相应目录项,目录项中提供了查找文件磁盘块所需的信息。目录实现的基本方法有线性表列表和哈希表两种,目录的实现为了查找,线性列表实现对应线性查找,哈希表的实现对应散列查找。

2.3 文件实现

在这里插入图片描述 1)连续分配

连续分配方式要求每个文件在磁盘上占有一组连续的块。

读取某个磁盘块时,需要移动磁头。访问的两个磁盘块相隔越远,移动磁头所需时间就越长。 结论:连续分配的文件在顺序读/写时速度最快 若此时文件A要拓展,需要再增加一个磁盘块(总共需要连续的4个磁盘块)。 由于采用连续结构,因此文件A占用的磁盘块必须是连续的。因此只能将文件A全部“迁移”到绿色区域。 结论:物理上采用连续分配的文件不方便拓展。 物理上采用连续分配,存储空间利用率低,会产生难以利用的磁盘碎片可以用紧凑来处理碎片,但是需要耗费很大的时间代价。

2)

相关推荐: