Chapter 11 File System

  1. 文件系统模型
    • 最高层时文件系统接口
      • 命令接口
      • 程序接口
    • 中间层是对对象操纵和管理的软件集合
      • 对文件存储空间的管理
      • 对文件目录的管理
      • 地址映射
      • 文件的读写管理
      • 文件的共享与保护等
    • 最底层是对象及其属性说明
      • 文件、目录和磁盘存储空间
  2. 文件的逻辑结构
    • 顺序文件
    • 索引文件
      • 往往建立一张索引表,记录下每个记录的长度及指向该记录的指针
      • 索引文件本身是顺序文件组织
  3. Access method
    • Sequential access
    • Direct access
  4. 文件的物理结构
    • 取决于外存的分配方式
      • 连续分配 --- 顺序结构
      • 链接分配 --- 链接结构
      • 索引分配 --- 索引结构
  5. Contiguous allocation
    • Simple
      • Only starting location and length are required
    • Random access
    • Wasteful of space
    • Files cannot grow
    • 优点
      • 简单,支持随机存取和顺序存取
      • 顺序存取速度快
      • 所需的磁盘寻道次数和寻道时间最少
    • 缺点
      • 要求连续的存储空间
      • 会产生碎片
      • 要求用户给出文件的最大长度:不利于文件的动态扩充
      • 不利于文件的插入和删除
  6. Linked allocation
    • Simple
      • Need only starting address
    • No random access
    • 隐式链接
      • 一个文件的信息存放在若干个不连续的物理块中,各块之间通过指针连接
      • 优点
        • 提高了磁盘的空间利用率,不存在外部碎片问题
        • 有利于文件插入和删除
        • 有利于文件动态扩充
      • 缺点
        • 不能直接存取
        • 存取速度慢,不适于随机存取
        • 可靠性问题,如指针出错
        • 更多的寻道次数和寻道时间
        • 指针占用空间
    • 可将多个块组成簇,以簇为单位,指针占用百分比减少,但是增加了内碎片
      • 显式链接
        • 文件分配表FAT(整个磁盘只有一张)
      • FAT方式需要占用较大的内存空间
  7. Index allocation
    • 事实上,打开某个文件时,只需要直到该文件所在的盘块号
    • Need a index table
      • 索引表组织:
        • 链接模式
          • 大的文件,索引表占了若干个盘块,一个盘块一个索引表,多个索引表链接起来
        • 多级索引
          •  将一个大文件的所有索引表(二级索引)的地址放在另一个索引表(主索引,一级索引)中
          • 在两级索引分配方式,若每个盘块大小为1KB,每个盘块号占4字节,则一个索引块中可存放256个盘块号。则两级索引最多可包含的盘块号总数为64K个(256*256)。因此,所允许的文件的最大长度为64MB(64K*1KB)
    • 优点:
      • 保持链接结构的优点,又克服了其缺点:
      • 既能顺序存取又能随机存取
      • 满足了文件动态增长\插入删除要求
      • 能充分利用外存空间
    • 缺点:
      • 较多的寻道次数和寻道时间
      • 索引表本身带来了系统开销,如:内外存空间,存取时间
  8. Disk structure
    • Disk or partition can be used raw --- without a file system, or formatted with a file system
  9. Directory structure
    • A collection of nodes containing information about all files
    • Both the directory structure and the files reside on disk
    • Backups of these two structures are kept on tapes
  10. File directory
    • FCB
      • 用于描述和控制文件的数据结构
      • 包含
        • 文件基本信息
        • 存取控制信息
        • 管理信息
    • 文件目录:文件控制块的有序集合
      • 目录项:构成文件目录的项目(目录项就是FCB)
    • 目录文件:为了实现对文件目录的管理,将文件目录以文件的形式保存再外存,这个文件就叫做目录文件
  11. Operations performed on directory
  12. Organize the directory to obtain
    • Efficiency --- locating a file quickly
    • Name --- convienient to users
    • Grouping --- logical grouping of files by properties
  13. Single-level directory
    • 命名冲突
  14. Two-level directory
    • 一级为主文件目录,给出用户名,用户子目录所在的物理位置
    • 二级成为用户文件目录,给出该用户所有文件的FCB
    • 优点
      • 解决了文件的重名问题
        • 用户名|文件名
      • 查找时间降低
    • No grouping capcability
  15. Tree-structured directory
    • 优点:
      • 层次结构清晰,便于管理和保护;
      • 有利于文件分类;
      • 解决重名问题;
      • 提高文件检索速度;
    • 缺点:
      • 查找一个文件按路径名逐层检查,由于每个文件都放在外存,多次访盘影响速度
  16. Acyclic-graph directory
    • Have shared subdirectories and files
    • If dict deletes list -----> dangling pointer.
    • Solutions:
      • Backpointers, so we can delete all pointers.
      • Entry-hold-count solution.
    • 文件别名的实现
      • 基于索引结点(index node)
        • 也称为硬链接(hard link),基于改进的多级目录结构,将目录内容分为两部分:文件名和索引结点。前者包括文件名和索引结点编号,后者包括文件的其他内容(包括属主和访问权限)。通过多个文件名链接(link)到同一个索引结点,可建立同一个文件的多个彼此平等的别名。别名的数目记录在索引结点的链接计数中,若其减至0,则文件被删除。
      • 基于符号链接(symbolic link, shortcut)
        • 特殊类型的文件,其内容是到另一个目录或文件路径的链接。建立符号链接文件,并不影响原文件,实际上它们各是一个文件。可以建立任意的别名关系,甚至原文件是在其他计算机上。
  17. General graph directory
    • How we guarantee no cycles
      • Allow only links to file not subdirectories
      • Garbage collection
      • Every time a new link is added, use a cycle detection algorith to determine whether it is OK
  18. 普通文件和目录文件的目录项通过一个二进制位区分
  19. Directory implementation
    • Linear list of file names with pointer to the data blocks
      • Sequential search
      • Simple to program
      • Consume CPU time
    • Hash table
      • Decrease directory search time
  20. File operation
    • 建立文件
      • 建立文件的FCB
      • 分配必要的外存空间
      • 在文件目录中为之建立一个目录项,目录项中记录新文件的文件名及其在外存的地址等属性,返回一个文件描述符。
    • 删除文件:  
      • 从目录中找到要删除文件的目录项
      • 使之成为空闲目录项
      • 回收该文件所占用的存储空间
    • 读文件 : 把文件中的数据从外存读入内存的用户区
      • 查找目录,找到指定文件的目录项,从中得到被读文件在外存的地址
      • 从外存将数据读入内存
    • 写文件 :  
      • 查找目录,找到指定文件的目录项
      • 利用目录中的文件指针将信息写入文件
    • 打开文件: 为了避免每次访问文件时都要从外存中查找文件目录,系统提供了打开文件命令。
      • 将待访问文件的目录信息读入内存活动文件表中,建立起用户和文件的联系。
      • 在有些系统中,也可以通过读命令隐含地向系统提出打开文件的要求。若在读写命令中不包含打开文件功能,则在使用文件之前,必须先打开文件。
    • 关闭文件:  
      • 撤消主存中有关该文件的目录信息,切断用户与该文件的联系;
      • 若在文件打开期间,该文件作过某种修改,则应将其写回辅存。
  21. Free-space management
    • 位图法
      • 用一串二进制反映磁盘空间中分配使用情况
    • 空闲块表
      • 将所有空闲块记录再一个表中
      • 有两项
        • 该空闲区的第一个盘块号
        • 该区的空闲盘快总数
    • 空闲块链表
      • 成组链接法
        • 文件区的所有空闲盘块被分成若干组
        • 每一组的第一个盘块中记录又下一组的盘块总数和盘块号
        • 空闲盘块号栈
          • 存放当前可用的空闲盘块号及空闲盘块号数N
        • 第一组盘块总数和盘块号记入空闲盘块号栈中
  22. Protection
    • File access control
      • 第一级:对访问者的识别
        • 对用户分类
          • 文件主
          • 文件主的同组用户
          • 其他用户
      • 第二级:对操作权限的识别
        • 对操作分类
          • 读操作(r)
          • 写操作(w)
          • 执行操作(x)
          • 不能执行任何操作(-)
    • 分级安全管理:为保证文件的安全性通常采用分级的管理措施
      • 系统级管理
        • 主要任务时不允许未经核准的用户进入系统
        • 注册/登录
      • 用户级管理
        • 对所有用户进行分类
        • 为指定用户分配文件访问权
        • 采用保护域
      • 目录级管理
        • 是为保护系统中的各种目录而涉及的,它与用户权限无关
        • 为保护目录的安全,规定只有系统核心才具有写目录的权利
      • 文件级管理
        • 通过系统管理员或文件主对文件属性的设置,来控制用户对文件的访问
  23. Efficiency and performance
    • Efficiency
      • Disk allocation and directory algorithm
      • Types of data kept in file's directory entry
    • Performance
      • Disk cache
        • 利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息
        • 专用
          • 在内存中开辟一个单独的存储空间来作为磁盘高速缓存,大小固定
        • 公用
          • 把所有未利用的内存空间作为一个缓冲池,供请求分页系统和磁盘I/O共享
      • Free-behind and read-ahead
      • RAM disk
        • 利用内存空间去仿真磁盘
    • 为提高对文件的访问速度,可从三个层次上着手
      • 改进文件的目录结构以及检索目录的方法,来减少对文件的查找时间
      • 选择好的文件存储结构,以提高对文件的访问速度
      • 提高磁盘I/O速度,以提高对数据的传送速度
        • 提前读
          • 用户对文件进行顺序访问的情况下,在读当前块的同时,可提前将下一个盘块读入缓冲区
        • 延迟写
          • 考虑到缓冲区中的数据,不久之后可能还会被访问,因此不立即将数据写入磁盘
  24. 数据一致性
  25. 磁盘容错技术
    • 低级容错技术
    • 二级容错技术
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值