第三章.3节 文件系统接口

版权声明:就是开个版权玩一下 https://blog.csdn.net/qq_41997479/article/details/86321808

(PS:个人课下整理的操作系统笔记,OneNote直接拷贝过来的,图片看不了就将就一下,配合张伟老师的PPT看效果更好)

一、文件的概念

1.文件是一个记录在二级存储有名称的有相关信息的集合

2.从用户角度来讲,一个文件是保存信息的最小分配单元

3.文件的属性(attribute)

  • 文件的相关信息保存在磁盘的目录结构中
  • 文件有了名称之后,就独立于进程,用户,操作系统了

4.文件的操作

 

  • 系统调用open通常返回的是打开文件表的对应条目的指针,后续操作都是基于该指针进行的。
  • 单个进程的“打开文件表”和系统的“打开文件表”,单个进程的表的每一条目都指向系统的表。
    • 单个进程的“打开文件表”,包含进程中打开的所有文件,以及文件的当前位置指针。
    • 系统的“打开文件表”,包含进程的无关信息。磁盘位置、访问日期、文件大小,open count
  • 打开文件的有关信息

 

二、访问方式

  1. 顺序访问——基于磁带模型
  2. 直接访问——基于磁盘模型(随机访问设备,利用相对块号),适于大规模容量信息的存储
  3. 索引访问——建立在直接访问方式基础上,对于比较大的文件

 

三、目录结构(Directory structure)

  1. 目录是包含文件信息的结点集合
  2. Both the directory structure and the files reside on disk,需备份文件和目录
  3. 分区:逻辑上的磁盘;卷volume:包含文件系统

一个物理上的磁盘对应多个逻辑上的分区

volume基于分区来说的,是带有文件系统的分区

  1. 目录的操作
    1. 搜索文件:搜索目录结构查找特定文件条目。类似的名称可能预示着文件之间的关系,能够查询给定文件名相关联的所有文件。
    2. 创建文件
    3. 删除文件
    4. 列举目录:能够列举出目录内的所有文件,及其各个条目的内容
    5. 重命名文件:文件名能够向用户展示其内容。
    6. 遍历文件系统。用户可能希望遍历目录的每个记录,以及文件系统的每个文件。为了可靠,定期备份。
  2. 目录的逻辑结构//重点
    1. Single-Level Directory

  • 单层目录中不能有重复命名
  1. Two-Level Directory
    • 一个系统一个MFD,一个用户一个UFD
    • 不同的用户文件目录可能会有相同的文件名
    • 缺点:对用户的隔离,不能同时在线对同一个任务作业
  2. Tree-Structured Directory
    • 最为常用的目录结构
    • 树有根目录。
    • 系统内的每个文件都有惟一路径名。
    • 路径名是从根经过所有子目录再到指定文件的路径
    • 缺点:树形结构禁止共享文件和目录
  3. Acyclic-Graph Directory无环图目录
    • 可以共享文件和目录
    • 问题:遍历可能会陷入死循环,删除时可能另一个同样指向它的文件在操作
  4. General Graph Directory通用图,是一个垃圾例子
    • 由于环的存在,遍历会有问题(死循环),删除也会有问题。
  1. 文件系统加载(mounting)

  1. 文件共享(sharing)

  • 一个文件或者目录的拥有者ID和组ID与其他文件文件属性一起保存
  • 远程文件系统:FTP、DFS(分布式文件系统)、www(world wide web)
  • 用户服务器模型:允许客户加载到服务器上的远程文件系统
    • NFS、CIFS的系统调用都会转换成远程调用
  • 分布式系统
  1. 保护
    1. 安全性问题
      1. 物理损坏
      2. 非法访问
    2. 解决:增加访问控制列表

猜你喜欢

转载自blog.csdn.net/qq_41997479/article/details/86321808