自学内容网 自学内容网

第二轮408复习笔记 操作系统 第四章文件管理

文件系统管理

从用户的角度看,文件系统是操作系统的重要部分之一。用户关心的是如何命名、分类和查找等而对于其中的细节如文件如何存储在辅存上、如何管理文件辅存关心甚少。

文件系统提供与二级存储相关的资源的抽象,让用户不了解文件的各种属性、文件存储介质的特征及文件在存储介质上的具体位置下,可方便快捷的使用文件

文件的属性

  • 名称:文件名称唯一
  • 类型:被支持不同类型的文件系统所使用
  • 创建者: 文件创建者的ID
  • 所有者:文件当前所有者的ID
  • 位置:指向设备和设备上的指针
  • 大小:文件当前大小,也可包含文件允许的最大值
  • 保护:对文件进行保护的访问控制信息
  • 创建时间、最后一次修改时间和最后一次存取时间

文件的分类

  • 按性质和用途分类:系统文件、用户文件、库文件
  • 按文件中数据的形式分类:分为源文件、目标文件、可执行文件
  • 按存取控制属性分类:分为可执行文件、只读文件、读/写文件
  • 按组织形式和处理方式:分为普通文件、目录文件、特殊文件

文件控制块和索引文件

文件控制块
文件控制块用来存放控制文件需要的各种信息的数据结构,以实现按名存取,文件与FCB一一对应。FCB的有序集合成为文件目录,一个FCB就是一个文件目录项,一个文件目录也被称为一个文件,称为目录文件。

  • 基本信息:文件名、文件的物理位置、文件的逻辑结构、文件的物理结构
  • 存取控制信息:包括文件的存取权限、核准用户的存取权限以及一般用户的存取权限
  • 使用信息:如文件建立时间、上次修改时间

索引节点
文件名和文件描述信息分离的方法,使文件描述信息单独形成一个索引节点的数据结构,简称i节点。在文件目录中的每个目录仅由文件名和相应的索引节点号组成

磁盘索引节点

  • 文件主标识符
  • 文件类型
  • 文件存取权限
  • 文件物理地址
  • 文件长度
  • 文件链接计数
  • 文件存取时间

内存索引节点

  • 索引节点号
  • 状态
  • 访问计数
  • 逻辑设备号
  • 链接指针

文件的操作

  • 创建文件:两个必要的步骤:为新文件分配外存空间;二是在目录中为之创建一个目录项
  • 删除文件:删除文件的目录项和控制文件,回收该文件占用的存储空间
  • 读文件:为了读文件,根据文件名找到目录项后,从中得到写文件在外存的地址;在目录项中,还有一个指针对于文件读操作
  • 写文件。为了写文件,根据文件名查找目录,找到指定文件目录后,再利用目录项中的写指针进行写操作

文件的打开与关闭

当文件实施多次读/写操作时每次都要检索目录开始,为了避免多次重复的检索目录,大多数操作系统要求,当用户再次对某文件发出请求时,须先利用系统调用open将该文件打开。打开是指系统检索到指定文件的目录时候,将目录项从外存复制到内存中的打开文件表的一个表目录中,并将该表的索引号返回给用户

多个进程同时打开文件的操作系统中,通常采用两级表;整个系统和每个进程表。整个系统的打开文件表包含与进程无关的信息:如文件在磁盘的位置、访问日期和文件大小。每个进程的打开文件表保存的是进程对文件的使用情况。一旦有进程打开了一个文件系统表就包含该文件的条目,当另一个另一个进程执行时,只不过在打开文件表增加了一个条目,并指向系统表的相应条目,通常打开文件表为每个文件关联一个打开计数器

每个打开文件都具有以下的关联信息

  • 文件指针:系统跟踪上次读写的位置(进程特有)
  • 文件打开计数
  • 文件磁盘位置
  • 访问权限

文件的逻辑结构

无结构文件
字符流构成的文件,又称流式文件
有结构文件

  • 顺序文件:文件中的记录一个接一个顺序排序
  • 索引文件:变长记录的顺序文件只能顺序查找,可以建立一张索引表,为主文件的每个记录在索引表中分别设置一个索引表指向记录的指针和记录长度
  • 索引顺序文件:索引顺序文件时顺序文件和索引文件的组合,先将变长顺序文件中所有记录分为若干组,为每个第一个记录建立一个索引项
  • 直接文件或散列文件:给定的记录的键值或通过散列函数直接决定的物理地址

文件的物理地址

连续分配
连续分配方法要求每个文件在磁盘上占有一组连续的块
链接分配

  • 隐式链接分配:目录项中含有文件第一块的指针和最后一块的的指针
  • 显式链接分配:将链接文件各物理块的指针显式地将存放在内存的一张链接表中,该表在整个磁盘中仅设置一张。

索引分配

  • 单级索引分配方式:为每个文件分配一个索引表,将分配给该文件的所有盘块号都记录在索引块中
  • 多级索引分配方式:当文件太大的时候,为每个索引块再建立一级索引
  • 混合索引分配方式

目录

目录的基本概念

FCB的有序集合是文件目录,一个FCB就是一个文件目录项。与文件管理系统和文件集合相关联的文件目录,它包含文件的属性、位置和所有权等
目录管理的基本要求:从用户角度来看,目录管理要实现“按名存取”;多用户系统中,应允许多个用户共享一个文件。目录管理通过树形结构解决和实现

目录结构

文件目录系统
在整个文件系统中值建立一张目录表,每个文件只占一个目录项

两级目录系统
两级目录结构,将文件目录分成主文件目录和用户文件目录
树形目录系统
从根目录出发的路径称为绝对路径,系统中每个文件都有唯一的路径名。为每个进程设置一个当前目录,此时进程对各文件的访问都只需要对于当前目录而进行
无环图目录结构
树形目录结构能实现文件分类但不实现文件共享,为此在树形目录结构上增加一些指向同一节点的有向边,当某用户要求删除一个共享节点时,若系统知识简单删除,则当另一共享需要访问时,会因无法找到这个文件而错误

文件共享

基于索引的共享方式
硬链接时给予索引节点的共享方式,它将文件的物理地址和属性不再放在目录项中,而是放在索引节点中,在文件目录只设置文件名和相应索引节点的指针。在索引节点中还有一个链接计数Count,也称引用计数,表示链接到本地索引上的用户目录的数目
** 利用符号链实现文件共享**
为用户b能共享A的一个文件,可由系统创建一个LINK类型的新文件L,并将文件L写入B的目录

错题回顾

  • 13题设文件F1的当前引用计数值为1,先建立F1的符号链接F2,再建立F1的硬链接文件F3,然后删除文件F1,此时文件F2和F3的引用只分别是1,1

文件系统

文件系统结构

  • I/O控制层:包括设备驱动程序和中断程序指令,在内存和磁盘系统之间传输信息。设备驱动程序将输入的命令翻译成底层硬件的特定指令、硬件控制器利用这些指令使I/O设备与系统交互。设备驱动程序告诉I/O控制器对设备的什么位置采取什么动作
  • 基本文件系统:向对应的设备驱动程序发送通用命令,以读取和写入磁盘的物理块。每个物理块由磁盘地址标识。该层也管理内存缓冲区,并保存各种文件系统、目录和数据块的换出。
  • 文件组织模块:组织文件及其逻辑块和物理块。文件模块可以将文件的逻辑地址转换为物理地址块,每个逻辑块从0到N编号,它与数据的物理块不匹配,因此需要通过转换来定位。
  • 逻辑文件系统:用于管理文件系统的元数据信息。元数据包括文件系统的所有结构,而不是实际结构。逻辑文件系统管理目录结构

文件系统布局

文件系统在磁盘中的结构

  • 主引导记录(MBR)用来引导计算机,BIOS读入并执行MBR。MBR做的第一件事就是确定活动分区,读入它的第一块
  • 引导块,MBR执行引导块的程序后,该程序负责启动该分区的操作系统,每个分区都是统一从一个引导块开始。
  • 超级块:包含文件系统的所有关键信息,在计算机启动时,或者在该文件系统首次使用时,超级块会被读入内存
  • 文件系统中空闲块的信息

外存空闲空间管理

  • 空闲表法
  • 空闲链表法 :空闲盘块链、空闲盘区链
  • 位示图法
  • 成组链接法:将空闲盘块分成若干组:如100个盘块作为一组,每组的第一个盘块记录下一组的空闲盘块总数和空闲盘区号。由各组的第一个盘块链接成一条链
    • 盘块的分配:根据空闲盘块号栈的指针,将与之对应的盘块分配给用户,同时移动指针,将空闲盘块数减1。若该指针指向的是栈底的盘块号,将该盘块的内容读入栈中,作为新的空闲盘块号的内容
    • 盘块的回收:将回收的盘块号存入空闲盘块号的顶部同时移动指针,并将栈中空闲盘块号加1,当空闲盘块数达到100时,表示栈已满,将现有栈的100个空闲盘块号存入新回收的盘块,表示将新回收的盘块号块号作为新栈底,再将栈中空闲盘块数置位1

虚拟文件系统

虚拟文件系统屏蔽了不同文件的差异和操作细节,向上为用户提供了文件操作的统一调用接口,为了实现虚拟文件系统,系统抽象了四种对象类型

  1. 超级块对象:用于存储元信息。操作方法包括一系列可在超级块调用的操作函数:分配inode、销毁inode、读inode、写inode
  2. 索引节点对象:索引节点与文件时一对一的关系。当文件被访问的时候,才在内存中创建索引对象
  3. 目录项对象:表示一个特定的目录项
  4. 文件对象:表示一个特定的目录项
    VFS对每个文件系统的所有细节进行抽象,使得不同的文件系统在系统运行的进程看起来都是相同的

原文地址:https://blog.csdn.net/weixin_61197809/article/details/139729338

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!