Skip to content

Chapter6 文件系统

abowloflrf edited this page Dec 11, 2017 · 2 revisions

文件的结构与存取方式

逻辑结构

  1. 字节流文件
  2. 记录文件

物理结构

连续结构

文件数据存放在若干连续的物理块中

优点

  • 简单,只用记住首块地址与文件长度
  • 支持顺序存取与随机存取
  • 顺序存取速度块
  • 所需磁盘寻道时间最少

缺点

  • 不利于文件的增长,若预留空间则浪费,因为预先不知道文件会多大否则需要移动并重新分配
  • 不利于文件内容的插入与删除
  • 存在外部碎片问题

链式结构

一个文件数据存放在若干不连续的物理块中,各块之间通过指针连接,每个物理块指向下一个物理块

优点

  • 提高磁盘利用率
  • 不存在外部碎片问题
  • 有利于文件的插入与删除
  • 有利于文件的动态扩充

缺点

  • 随机存取相当缓慢
  • 需要更多寻到时间
  • 链接指针占用一定的孔家

文件分配表

磁盘的每个分区包含一个FAT,分区中的每个盘块在其中占用一项,指出文件中下一块的块号

索引结构

一个文件数据存放在若干不连续的物理块中,系统为每个文件建立一个专用的数据表索引表,存放着逻辑块号与物理块号的对应关系

优点

  • 既能顺序存取,又能随机存取
  • 能满足文件动态增长,插入,删除的要求
  • 能充分利用外存空间

缺点

  • 索引表本身的开销

文件存取方式

  • 顺序存取:对文件中的数据按逻辑顺序进行读写
  • 随机存取:对文件中的数据按照任意顺序进行读写
  • 按键key存取:DBMS

文件目录

基本概念

  • 文件控制块FCB

存放为了管理文件所需要的相关信息(文件属性),也称为文件说明或文件目录项,文件控制块是文件存在的标志

内容:基本信息文件名,地址,长度,结构,类型,存取控制信息文件owner,权限,口令,使用信息共享计数,创建修改日期

  • 文件目录

所有FCB组织在一起构成文件目录,即文件控制块的有序集合

  • 目录项

构成文件目录的项目即FCB

  • 目录文件

为了实现对文件目录的管理,将文件目录以文件的形式保存在外存。这个文件就是目录文件

查目录是文件系统中最频繁的操作,因此合理组织目录很重要

目录结构

  • 单级目录结构
  • 二级目录结构
  • 多级目录结构

文件目录检索

访问文件时需要两步,1.目录检索(根据文件名查目录确定文件的起始地址) 2.文件寻址(确定所要访问文件内容的起始地址)

文件目录的实现

  1. 文件的说明信息FCB都放在目录项中

  2. 文件说明分成两部分符号目录项基本目录项

空闲存储空间的管理

空闲区表

将所有空闲记录在一张表中

空闲块链

将所有空闲块链成一个链,适合离散分配

位图

用一串二进制位反映磁盘空间的分配情况,每个物理块对应一位,已分配为1,否则0

文件的使用,共享,保护

使用

open->r/w->close

  • open 把文件信息FCB放入内存,便于以后快速访问

根据指定文件路径名,查目录,找到文件目录项,检查权限,将文件信息装入内存,分配一个文件id,后面通过id对文件操作

  • close

释放文件说明信息所占用的内存空间,把文件缓冲区中已修改的内容写回文件

共享

一个文件被多个用户或进程使用

目的:节省时间储存空间减少工作量;进程通过文件共享交换信息

普通文件共享方法

  1. 路径名访问共享文件

实现简单,不需要建立另外的目录项

  1. 链接法

在相应的目录之间建立连接,即一个目录项中含有指向另一个目录项的指针

  1. 基本文件目录BFD

基于I节点的文件共享方法

  1. 硬链接
  2. 软链接

存取控制

  • 存取控制矩阵

读r/写w/执行x/不能执行任何操作-

  • 存取控制表ACL
  • 存取权限表CL