天天看点

操作系统--文件管理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.这些数据需要存储在持久的外存中,当需要的时候加载进内存

不同的数据结构加载的时间:

卷控制块:当文件系统挂载进内存时候

文件控制块:当文件被访问的时候

目录节点:遍历的时候

继续阅读