文件管理系统

系统文件架构图 axure 文件管理系统类图_系统文件架构图 axure


系统文件架构图 axure 文件管理系统类图_文件目录_02

1.文件管理

系统文件架构图 axure 文件管理系统类图_操作系统_03

1.1.一个文件的逻辑结构

比如一个文本txt文件,又或者Excel文件,在我们用户看来,它是长什么样的,这个就是逻辑结构

  1. 几个概念
  1. “逻辑结构”,就是指在用户看来, 单个文件内部的数据应该是如何组织起来的。
  2. “物理结构”指的是在操作系统看来,单个文件的数据是如何存放在外存中的。
  3. 顺序存储
    逻辑上相邻的记录 物理上也相邻(类似于顺序表)
  4. 链式存储
    逻辑上相邻 的记录物理上不一定相邻 (类似于链表)
  5. 串结构
    文件里的记录存放顺序跟关键字无关,通常按时间先后存放
  6. 顺序结构
    文件里的记录存放顺序跟关键字相关
  1. 无结构文件
    文件内部的数据就是一系列二进制流或字符流组成。又称“流式文件”
  2. 有结构文件(重点)
  1. 顺序文件
  • 链式存储
    无论是定长还是可变的记录,都无法实现随机存取,因为物理上不一定相邻,没办法通过地址加减快速定位记录。因此只能从第一个记录开始依次往后查找
  • 顺序存储
  • 可变长记录
    无法实现随机存储,因为物理块大小(面积)不同,也没办法直接通过起始地址+第i个记录*定长得到物理地址。因此只能从第一个记录开始依次往后查找
  • 定长记录
  • 可以实现随机存取,若定长为L,则第i个记录存放的相对位置是i*L
  • 若采用串结构,没办法根据关键字获取对应记录(注意理解,只是不能通过关键字获取)
  • 若采用顺序结构,可以快速找到关键字对应记录(如折半查找)
  • 顺序存储的缺点,不方便增加删除记录
  1. 索引文件
  • 对于可变长记录文件,要找到第 i 个记录,必须先顺序第查找前 i-1 个记录, 但是很多应用场景中又必须使用可变长记录。如何解决这个问题?
  • 建立一张索引表——变成顺序存储中的定长记录模式。每条记录对应一个索引项。这样一来解决了顺序文件链式存储和顺序文件顺序存储中的可变长记录两种随机查找问题;方便增加删除记录
  • 可以把索引表理解成这个文件的隐藏头部内容,然后其他就是用户看到的记录
  1. 索引文件缺点,索引表(比如Excel表)每条记录对应一条索引,占用空间大
  1. 顺序索引文件
  • 将记录分组,每组对应一个索引表项,理解成存放在文件逻辑地址空间头部(为什么在win系统创建一个空Excel文件,也有大小?)
  • 检索记录时先顺序查索引表,找到分组再顺序查找分组
  • 当记录过多可以建立多级索引表

1.2.文件目录

在介绍一个文件的物理结构之前,我们需要知道文件存放在哪,即怎么找到目标文件,所以先介绍下文件目录。在我看来,文件目录其实就是一种特殊的文件,只不过这种特殊的文件,记录的内容是每个文件的文件名,文件大小,创建时间,外存物理地址等等

  1. 文件目录的实现
  • 一个文件对应一个文件控制块FCB,一个FCB就是一个目录项,多个FCB组成文件目录
  • 对目录的操作,搜索、创建文件、删除文件、显示文件、修改文件
  • FCB 中包含了文件的基本信息(文件名、物理地址、逻辑结构、物理结构等)
  1. 目录结构
  • 单级目录结构
    一个系统只有一张目录表,不允许文件重名
  • 两级目录结构
    不同用户的文件可以重名,但是不能对文件分类
  • 多级目录结构
  • 不同目录下的文件可以重名,也可以对文件分类,但是不方便文件共享
  • 操作系统根据文件路径找到目标文件
  • 绝对路径,从根目录出发
  • 相对路径,从当前路径出发
  • 无环图目录结构
    在多级(树形)目录结构的基础上,增加一些指向同一节点的有向边,使整个目录成为一个有向无环图
    为共享结点设置一个共享计数器,计数器为0才会真正删除该结点
  1. 索引结点(重点理解)
  • 除了文件名以外其他信息放在索引结点中,每个文件都对应一个索引结点
  • 目录项只包含文件名、索引结点指针,因此每个目录项的空间大小会大幅减小
  • 由于目录项空间大小(也可以说比特长度)减小,因此每个磁盘块可以放的下更多的目录项,因此检索文件时磁盘I/O的次数变小很多
  1. 补充
  • 磁盘块
    磁盘块,应该跟内存划分的物理块概念差不多,单位最小,文件目录划分成一个个目录项,塞到磁盘块里
  • 磁盘I/O次数
    磁盘I/O次数是访问磁盘块次数,如果一个磁盘块能放下一个文件目录所有的目录项,那么磁盘I/O次数就是1

1.3.一个文件的物理结构

文件数据应该怎么样存放在外存中

系统文件架构图 axure 文件管理系统类图_文件目录_04


索引分配——索引表实现

系统文件架构图 axure 文件管理系统类图_文件目录_05

三种分配方式对比

系统文件架构图 axure 文件管理系统类图_系统文件架构图 axure_06

1.4.文件存储空间管理

系统文件架构图 axure 文件管理系统类图_文件目录_07

1.5.文件基本操作

系统文件架构图 axure 文件管理系统类图_链表_08

1.6.文件共享

系统文件架构图 axure 文件管理系统类图_文件目录_09

1.7.文件保护

系统文件架构图 axure 文件管理系统类图_链表_10

2.磁盘组织与管理

2.1.磁盘的结构

系统文件架构图 axure 文件管理系统类图_结点_11

2.2.磁盘的调度算法

系统文件架构图 axure 文件管理系统类图_文件目录_12

2.3.磁盘的管理

系统文件架构图 axure 文件管理系统类图_系统文件架构图 axure_13

文件系统实例