-
文件定义
文件是计算机信息存取的一种重要的组织形式
文件由若干信息项有序构成,信息项可以是字节,也可以是结构化数据
用户通过读写指针来存取文件的信息项
文件具有文件名,用户通过文件名存取文件
文件分类
分类标准:文件用途(系统文件,库文件,用户文件)
操作权限(只读文件、读写文件、不保护文件)
文件性质(普通文件、目录文件、设备文件)-
文件的属性
指定文件的类型、操作特性和存取保护等以组信息
文件属性存放在文件所在目录的目录文件中
MS-DOS系统中,文件属性占目录项的一个字节,00000001为只读,00000010为隐藏属性。
文件系统
负责管理文件的机构称为文件系统,其功能是负责文件的创立、撤销、读写、修改、复制和存取控制等,并管理存放文件的存储设备。文件系统的目标是让用户以文件名的方式来存取文件文件的结构
逻辑结构 | 物理结构 |
---|---|
用户观点 | 系统观点 |
为用户提供逻辑结构清晰、方便使用的文件 强调文件信息项的构成方式和用户的存取方式 |
文件在存储设备上的存储结构 强调合理利用储存空间,缩短I/O存取时间 |
- 文件的逻辑结构
记录式文件 | 流式文件 |
---|---|
信息项是记录(结构化数据) | 信息项是字节,文件长度就是字节数量 |
如学生花名册包含若干学生记录 每条记录包含姓名、学号等 文件需要保存记录长度和数量等说明信息,记录这些额外信息浪费存储空间 |
文件无需额外说明信息,节省存储空间 |
现代操作系统中所有文件都是流式文件,由应用程序解释和处理文件
- 文件存取方法
顺序存取 | 随机存取 |
---|---|
按文件信息项排列顺序依次存取 | 直接存取,需要指定存取位置 |
文件打开时,读写指针指向第一个信息项 每存取一个信息项,读写指针自动加1而指向下一个信息项 |
对流式文件或记录为定长的记录式文件容易缺点存取位置 对记录不定长的记录式文件比较定位较麻烦,需从第一条记录开始查询,可建立索引进行改善 |
- 文件的物理结构
指文件在存储设备上的存储方式,强调合理利用储存空间,缩短I/O存取时间
类型 | 连续文件 | 索引文件 | 串联文件 |
---|---|---|---|
概念 | 文件按逻辑块的顺序存放在硬盘的连续物理存储块中,文件目录记录文件长度(块数)和第一个存取块的块号 | 文件存放在不连续的存储块中,通过建立索引表记录逻辑块和物理存储块的对应关系,索引表单独放在存储块中 | 文件存放再不连续的存储块中,每个存储块有一个指针,指向下一个存储块 |
特点 | 文件建立时给出文件最大长度并登记文件起始位置 | 文件=索引区+数据区 先访问索引,再访问数据 |
文件目录指明文件名和第一个存储块的块号 |
优点 | 实现简单 支持顺序存取和随机存取 顺序存取速度快,所需磁盘寻道次数和寻道时间短 |
支持顺序存取和随机存取 支持文件动态增长、插入和删除 |
适用于顺序存取 提高磁盘空间利用率,不存在外部碎片 有利于文件动态扩充、插入和删除 |
缺点 | 文件不易动态增长,需要预留空间,大了浪费,少了需要重新分配和移动 不利于文件插入和删除 外部碎片问题 |
存取速度慢,不适合随机存取 可靠性差,若指针出错则文件访问失败 指针占用一定空间 |
FAT文件系统(File Allocation Table)
串联文件系统,FAT12,FAT16,FAT32
FAT将指针有序集中放到FAT表中,文件访问过程:
访问文件目录,找到第0块的块号i->访问FAT找到下一块的块号:FAT(i)-> FAT(i)=FFFF则文件结束FAT的缺点
读文件时,先读FAT,影响使用效率
FAT要占存储空间,存储容量越大,存取块越多,FAT元素越多,且元素位宽越长,占用更多额外的存储空间
存取块为2N块,FAT有2N个元素,每个项至少需要N位的宽度
扇区是磁盘上最小可寻址存储单元(512字节)
簇(存取块)是设备的最小存取单元,具有固定数量的扇区
360KB的磁盘,簇=2个扇区
10MB的磁盘,簇=8个扇区
2G的硬盘,簇=64个扇区
FAT元素数目和簇的数目一样多
FAT元素宽度至少为N才能标识全部的簇(2N)
磁盘容量=FAT长度*簇容量=FAT长度*簇扇区数*512字节FAT16文件系统
以簇为单位管理磁盘
簇是扇区的倍数,是2的次幂,最大64扇区
FAT元素宽度为2字节,16Bit,最大分区为2GB
FAT16格式化的磁盘
启动扇区 | FAT1 | FAT2 | 根目录 | 其他目录和文件 |
---|
- 存取空间管理是记录磁盘使用情况,管理和分配,回收存储空间
- 空闲文件,把连续空闲区看出一种特殊文件,由多个连续空闲块组成
空闲文件目录 | 空闲块链 | 位示图 |
---|---|---|
索引空闲文件代表存储设备全部空闲空间 为空闲文件建立的专门目录,称为空闲文件目录 每个表项对应一个空闲文件,包含第一个空闲块号,连续空闲块个数 |
把所有空闲块链接在一起 当申请者需要空闲块时,链头开始搜索所需空闲块 当回收空闲块时,把释放的空闲块逐个加在链尾 |
从内存中划出若干个字节,每个bit标识1个存储块空闲(1)或占用(0)状态 |
文件目录
也称文件名址录,记录文件名和存放地址的目录表
具有将文件名转换为外存物理位置功能
文件属性也记录在目录中目录文件
文件目录以文件形式存于外存的文件-
目录结构
主要包括单极目录、二级目录和多级目录(树型目录)
不同系统的文件目录的组织不完全相同
DOS系统(32字节)
Unix,文件目录项中的文件名和其他属性信息分开,后者单独组成一个定长数据结构,索引结点i_node
- 文件全名
包含从根目录开始到文件为止的通路上所有子目录路径
子目录之间用"/"或"\"隔开
子目录名组成的部分又称为路径名,每个文件都有唯一的路径名
路径名的形式包括绝对路径名(从根目录到指定文件),相对路径名(从当前目录到指定文件)
- 文件的保护
对文件的访问系统首先要检查访问权限
操作 | 标识 | 操作 | 标识 |
---|---|---|---|
仅允许执行 | E | 仅允许读 | R |
仅允许写 | W | 仅允许在文件尾写 | A |
仅允许对文件进行修改 | U | 允许改变文件的存取权限 | C |
允许取消文件 | U |
文件操作 | 目录操作 | 相关常见API | 典型文件系统 |
---|---|---|---|
创建文件 写文件 读文件 文件定位 删除文件 截短文件 属性设置和读取 |
创建目录 删除目录 |
Create Delete Rename File_attribute Open Close Write Read DIR_read DISK_space Link Unlink File_date |
FAT16 FAT32 NTFS EXT2 EXT3 EXT4 |