文件系统

  • 文件定义
    文件是计算机信息存取的一种重要的组织形式
    文件由若干信息项有序构成,信息项可以是字节,也可以是结构化数据
    用户通过读写指针来存取文件的信息项
    文件具有文件名,用户通过文件名存取文件


    文件读写
  • 文件分类
    分类标准:文件用途(系统文件,库文件,用户文件)
    操作权限(只读文件、读写文件、不保护文件)
    文件性质(普通文件、目录文件、设备文件)

  • 文件的属性
    指定文件的类型、操作特性和存取保护等以组信息
    文件属性存放在文件所在目录的目录文件中
    MS-DOS系统中,文件属性占目录项的一个字节,00000001为只读,00000010为隐藏属性。


    Google文件属性
  • 文件系统
    负责管理文件的机构称为文件系统,其功能是负责文件的创立、撤销、读写、修改、复制和存取控制等,并管理存放文件的存储设备。文件系统的目标是让用户以文件名的方式来存取文件

  • 文件的结构

逻辑结构 物理结构
用户观点 系统观点
为用户提供逻辑结构清晰、方便使用的文件
强调文件信息项的构成方式和用户的存取方式
文件在存储设备上的存储结构
强调合理利用储存空间,缩短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字节)


    DOS系统的目录结构

Unix,文件目录项中的文件名和其他属性信息分开,后者单独组成一个定长数据结构,索引结点i_node

  • 文件全名
    包含从根目录开始到文件为止的通路上所有子目录路径
    子目录之间用"/"或"\"隔开
    子目录名组成的部分又称为路径名,每个文件都有唯一的路径名
    路径名的形式包括绝对路径名(从根目录到指定文件),相对路径名(从当前目录到指定文件)
Linux的目录
  • 文件的保护
    对文件的访问系统首先要检查访问权限
操作 标识 操作 标识
仅允许执行 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

你可能感兴趣的:(文件系统)