操作系统文件系统
概念
文件:计算机信息存取的一组重要组成形式
内存,注册表、、、
文件由若干个信息项有序组成
文件用途,操作权限,文件性质等分类
文件属性:类型,操作特性,存取保护
文件属性放在文件所在目录的目录文件中
文件系统
管理文件的机构
让用 户以文件名存取文件
逻辑结构
用户
用户存取方式,文件信息项构成方式
记录式文件
信息项是记录:结构化数据,文件记录说明信息
流式文件
信息项是字节,文件长度是字节数量
现代操作系统是流式文件,由应用程序解释和处理文件
物理结构
系统
文件在存储设备上的存储结构
合理利用存储空间,缩短I/O存取时间
顺序存取
按文件信息项排列顺序依次存取
读写指针
存储介质时磁盘时更方便
随机存取
直接存取
存取操作时指定存取的位置
流式文件或记录为定长的记录式文件容易确定存取路径
不定长式的记录文件:索引,挨个查找
文件操作
create,delete,open,close,read,write,append,seek,get attributes,set attributes,rename
文件物理结构
概念
文件在存储设备上的存储方式
类型
连续文件,索引结构,串联文件
连续文件
文件按逻辑块顺序放在硬盘连续的物理存储块中
文件目录记录文件长度和第一个存储块的块号
特点
给出文件最大长度并登记文件起始位置
优点
简单
支持顺序存取和随机存取
顺序存取速度快
缺点
文件不易动态增长
不利于文件插入和删除
外部碎片问题
索引文件
文件存放在不连续的存储块中
建立索引表记录文件逻辑块和物理存储块的对应关系
索引表单独放在存储块中
特点
文件=索引区+数据区
先访问索引,再访问数据
支持顺序存取和随机存取
支持文件动态增长,插入,删除
串联文件
文件存放在不连续的存储块中
每个存储块由各指针,指向下一个存储块
特点
适用于顺序存取
提高磁盘利用率
支持文件动态增长,插入,删除
缺点
存取速度慢
next指针可能出错
next指针占用存取空间
FAT文件系统
FAT文件系统
FAT(文件分配表)
串联文件:存储块next域指向下个存储块
FAT表:将next有序集中放在FAT表中
文件访问过程:访问文件目录,访问FAT找下一块的块号,FFFF表示文件结束
文件分配表的缺点
先读FAT,影响使用效率
FAT占用存储空间
扇区
磁盘上最小可寻址存储单元
簇=存储块
设备最小存取单元,固定数量扇区
FAT元素数目和簇的数目一样多
磁盘容量=FAT长度x簇容量=FAT长度x簇扇区数x512字节
FAT16文件系统
以簇为单位管理扇区
元素宽度2字节
没簇最大64扇区
磁盘:启动扇区+FAT1+FAT2+根目录+其它目录和文件
存储空间管理和目录
存储空间管理
功能
记录磁盘使用情况,管理和分配、回收存储空间
记录磁盘空闲块:空闲文件目录,空闲块链,位示图
空闲文件目录
空闲文件:把连续空闲区看成特殊文件,对各连续空闲块组成
空闲文件目录:建立专门目录
空闲块链
所有空闲块链接
链表管理
位示图
内存中划出若干个字节
文件目录
文件名址路
将文件名转换位外存物理位置的功能
文件属性也记录在目录中
目录文件
文件目录以文件形式存于外存
目录结构
文件名和属性信息分开
索引结构
DOS系统
Unix
单级目录,二级目录,多级目录
文件全名和路径
每个文件有位移路径名
相对路径,绝对路径
文件保护
文件和目录操作
文件系统
FAT16
FAT32
NXFS
EXT2、、、
一层目录系统
嵌入式系统,不能区分用户
两层目录系统
区分用户,用户的文件
层次目录系统
文件的有序组织
目录操作
文件系统的实现
MBR:主引导区记录,操作系统的引导程序
超级块:文件系统类型,数据块,magic number,管理信息
文件实现
连续存储:磁盘碎片
已磁盘块的链表形式存储文件:空间浪费
在内存中使用文件分配表的链表分配:块中存储下一个地址。顺序存储,链表形式。静态链表
i节点结构:UNIX最早组织结构。先建立表,前面文件属性信息,后面给出具体地址,指针扩展文件容量。可以扩展
目录实现
简单目录
目录项只引用i节点的目录
目录实现长文件名:在行中,在堆中(散列表,异常冲突)
共享文件
目录和文件建立连接
符号连接:增加额外开销
文件系统管理和优化
磁盘空间管理
磁盘空间利用率随磁盘块大小增加而减小(空间碎片)。
把空闲表存放在链表中
位图
配额表中记录每个用户的配额
文件系统备份
逻辑转储算法
文件系统一致性
文件系统状态:一致,块丢失,空闲表中有重复快,重复数据块
文件系统性能
缓冲区高速缓冲数据结构(LRU,MRU),hash表组织结构
块提前读入高速缓存
磁盘碎片整理
移动文件使它们相邻,把空闲空间放在连续区域内