操作系统--文件管理1
1.文件系统概念
*文件系统:OS中管理持久数据的子系统;提供数据存储和访问的功能
具体涉及的操作:组织、检索、读写访问数据
大多数计算机系统都具备文件系统广义:google也是一个文件系统
*文件:具有符号名,由字节序列构成的数据项的集合
文件是文件系统的最小单位;文件名是文件的标识符号
*文件系统的种类:
磁盘文件系统:文件存储在存储设备上--存在不同的文件系统(数据的组织方式
*文件属性:名字、类型、位置、大小、保护、创建者、创建时间、最近修改时 间等信息。
*文件头:文件系统元数据中的文件信息(文件属性和文件存储顺序位置)
注意:设置文件头是为了方便系统管理文件。
*文件系统的功能:
#为文件分配磁盘空间,涉及下面3个方面内容
1.管理文件块(位置和顺序) 2.管理空闲空间(位置)3.空闲空间的分配(策略) #管理文件集合
1.定位:文件及其内容 2.命名:通过名字找文件 3.文件组织方式-系统结构
#数据的可靠和安全
1.安全:多层次包含数据安全 2.可靠性:避免其他的错误对文件造成的影响 *文件描述符:描述打开的文件在内存中维护的相关信息
*文件的访问模式:进程访问文件必须先打开文件;内核跟踪进程打开的所有文件
OS为每个进程维护一个打开文件表;
文件描述符就是打开文件的标识
文件描述符组成:
1.文件指针:最后一次读写的位置,每个进程分别维护自己的打开文件指针
2.文件打开计数:记录当前文件被打开的次数;以方便最后一个进程关闭文件
该文件可以从打开文件表中去掉
3.文件的磁盘位置:缓存数据访问信息
4.访问权限:只读之类
*文件的用户视图:持久的数据结构
*文件的系统视图:文件就是字节序列,系统不关心存储在磁盘数据的数据结构
文件是数据块的集合;块大小与扇区大小不一致
数据块是逻辑结构;扇区是磁盘上物理存储单元
*磁盘最小的访问单位是块
*进程读文件:获取字节所在数据块,返回数据块对应的内容
*进程写文件:获取对应数据块,修改数据块对应的内容;写回数据块
*文件系统中基本操作单位是数据块;即使只读一个字节也要缓存整个块在内存
*访问模式
顺序访问:按照文件中字节顺序访问--大多数文件的访问模式
随机访问:从任意位置开始--不常用但是很重要;虚拟存储使用到
索引访问:依据数据的特征索引访问--OS上的文件系统是个小型的数据库(字典
*文件内部结构-OS并不关心
无结构:简单记录结构;复杂结构;
*文件的共享与访问控制
访问控制:用户对那些文件可以访问;以及用户访问文件的访问模式
*文件访问控制列表ACL:<文件实体;权限>
*用户id,用户分组设置相同权限
*语义的一致性:规定多进程如何同时访问共享文件-OS将这个控制交给应用程序
*分层文件系统
文件以目录的方式组织起来:目录是一种特殊的文件
目录文件的内容:文件索引表<文件名,指向文件的指针>
目录与文件呈现的树形结构;以路径的形式标识每个文件
*目录的操作
搜索文件;创建文件;删除文件;列目录中文件;重命名文件;遍历路径
*关于目录的操作都被封装在OS内核,应用程序通过系统调用实现访问目录
*目录的实现:
线性表或哈希表--减少搜索时间,会有冲突
*文件别名:两个或多个文件关联同一个文件
硬链接:多个文件项指向同一个文件
软链接:以“快捷方式”指向其他文件
通过存储真实文件的逻辑名称实现--存储别的文件的完整路径
*文件目录中的循环:OS通过一些限制防止这个现象的出现
*名字解析:和存储管理的地址翻译类似;将逻辑名对应到物理资源
做法:依据路径名,在文件系统中找到文件的实际位置
遍历文件目录,知道找到目标文件
*当前工作目录:解析的时候从当前目录开始,没必要从根目录开始
文件的路径:存在相对路径和绝对路径
*文件系统的挂载:文件系统必须先辈挂载才可以被访问
*文件系统的分类:
磁盘文件系统:文件存储在存储设备上;FAT等
数据库文件系统:文件特征可以被检索
日志文件系统:记录文件系统的修改/事件
网络/分布式文件系统:文件可以通过网络来共享--存在文件共享协议
文件位于远端服务器,客户端挂载服务器文件系统
标准文件访问被转换为远程访问
出现的问题:文件系统安全性;一致性问题;错误处理方式
特殊/虚拟文件系统:管道
2.虚拟文件系统:使得系统对上层操作提供通用的文件操作接口
位置:文件/文件系统API--虚拟文件系统--操作系统(实际文件操作)
目的:对所有不同的文件系统的抽象
功能:对上提供相同的文件和文件系统接口
管理所有文件和文件系统关联的数据结构
高效的查询例程,遍历文件系统
对下与特定的文件系统模块进行交互
文件系统的基本数据结构
1.文件卷控制块:每个文件系统一个|文件系统的详细信息|块大小分配空余块等
2.文件控制块:每个文件1个|描述文件的详细信息|访问权限拥有着数据块位置
3.目录项:每个目录项一个|形成目录项数据结构--树形结构
执向文件的控制块,父目录,子目录等信息
4.文件组织结构
vol文件卷-->dir目录树型结构-->file文件控制块-->实际文件所在的数据块
5.文件系统的存储结构
卷控制块--每个文件系统一个
文件控制块--每个文件一个
目录节点---每个目录项一个
6.这些数据需要存储在持久的外存中,当需要的时候加载进内存
不同的数据结构加载的时间:
卷控制块:当文件系统挂载进内存时候
文件控制块:当文件被访问的时候
目录节点:遍历的时候