操作系统(Operating System)知识点复习——第十二章 文件管理

目录

0.前言

1.Overview

2.文件的组织方式

①The Sequential File 顺序文件

②The Pile堆

③The  Indexed Sequential File 索引顺序文件

④The Indexed File 索引文件

⑤The Direct or Hashed File 直接文件或者散列文件

3.文件目录

Structure 1:简单目录结构 Simple Structure for a Directory:目录项列表

Structure 2:两级目录 Two-level Scheme for a Directory

Structure  3:层次/树状结构目录 Hierarchical, or Tree-Structured Directory

4.文件共享

5.辅助存储管理

5.1 文件分配

①连续分配 Contiguous allocation

②链式分配 Chained allocation

③索引分配 Indexed allocation

5.2 空闲空间管理

①Bit tables 位表

②Chained free portions 链式空闲区

③Indexing 空闲索引表

④Free block list 空闲列表


0.前言

本系列文章旨在记录操作系统的知识点,可用于期末复习,笔者理解尚浅,文中不正之处静待批正。加粗高亮部分为重点。

1.Overview

文件系统的特性:

  • 长期存在
  • 进程共享
  • 结构化存储

File Management Systems 文件管理系统:用户和程序使用文件的唯一方式

2.文件的组织方式

文件组织评价标准:

  • 短的存取时间
  • 易于修改
  • 存储经济性
  • 维护简单
  • 可靠性

文件基础知识:

  • 文件操作:Create/Delete/Open/Close/Read/Write
  • 术语:Field (域) < Record (记录) < File (文件) < Database (数据库)
  • 文件的存储结构是指文件在外存上的组织方式

5种不同的组织方式:

①The Sequential File 顺序文件

  • 域都是相同的(长度,顺序)
  • 第一个域为关键域(key filed)
  • 新记录被放在日志文件(log file)事务文件(transaction file)
  • Batch update (成批更新):合并log file与主文件
  • 顺序文件多用于磁带
  • 顺序存储器(磁带)只能顺序查找
  • 直接存取存储器(磁盘)可以顺序查找,也可以分块查找二分查找

②The Pile堆

  • 到达时间存放
  • 域的长度不一定相同
  • 缺点:搜索不方便,只能穷举搜索(exhaustive search)无结构

③The  Indexed Sequential File 索引顺序文件

  • Sequential file + index + overflow file
  • 新纪录加入溢出文件中(overflow file)
  • 索引提供了快速查询的能力,索引查找关键字小于或者等于目标关键字的最大记录
  • 只有一个关键域
  • 采用batch update
  • Multiple level indexes 多级索引对于相同域可提高效率
  • 缺点:基于单个域

④The Indexed File 索引文件

  • 对于不同域用多级索引
  • 索引本身是顺序的,但记录非顺序
  • 索引查找记录
  • 可能包含完全索引exhaustive index部分索引partial index

⑤The Direct or Hashed File 直接文件或者散列文件
  • 每个记录均有一个关键域
  • 哈希函数基于关键域
  • 优点:文件可随机存放,不用排序;插入删除方便存取速度快不用索引区,节省存储空间
  • 缺点:不能进行顺序存取,只能按关键字随机存取

3.文件目录

目录:

  • 一个目录本身是一个文件
  • 提供文件名和文件之间的映射

结构:Directory entry 目录表项

操作:Search搜索、Create file创建、Delete file删除、List directory目录列表、Update directory更新目录

Structure 1:简单目录结构 Simple Structure for a Directory:目录项列表
  • 顺序文件代表目录,该目录下的文件名做该顺序文件的关键字
  • 文件不能重名

Structure 2:两级目录 Two-level Scheme for a Directory
  • master directory 主目录+One directory for each user 用户目录(简单列表)
  • 不能建子目录可重名

Structure  3:层次/树状结构目录 Hierarchical, or Tree-Structured Directory

  • 主目录下有用户目录
  • 每个文件均有路径名pathname,每个用户目录有子目录及可作为主目录的文件
  • 不同路径下文件可重名

文件系统挂载:启动时挂入根节点

4.文件共享

两个问题:存取权限同时存取控制

Access Rights:

  • None 无
  • Knowledge 知道
  • Execution 执行
  • Reading 读
  • Appending 追加
  • Updating 更新
  • Changing protection 更改保护
  • Deletion 删除
  • Owners 所有者(最大)

Simultaneous Access:更新时要上锁文件,更新中可锁定个人记录,需要考虑互斥与死锁

5.辅助存储管理

5.1 文件分配

portions 文件分区:

  • 一个分区对于一组连续的块,大小为block的倍数
  • 一个文件对应一个或多个分区
  • 文件分配表(FAT)来追踪文件分区

  • 预分配 Preallocation:需知道创建文件时的文件最大大小
  • 动态分配 Dynamic allocationallocation:当需要时再分配

分配策略:

①连续分配 Contiguous allocation
  • 文件创建时分配一组连续的块(预分配适用)
  • 文件分配表中只有一个项:起始块及文件长度
  • 优点:支持顺序访问直接访问(随机访问)
  • 缺点:会产生外部碎片(利用压缩),不便于扩展

②链式分配 Chained allocation
  • 基于单个块进行分配
  • 每个块都包含指向链中下一个块的指针
  • 文件分配表中只有一个项:起始块及文件长度
  • 优点:无外部碎片,适合顺序文件
  • 缺点:不支持随机访问,会破坏局部性查找效率低

③索引分配 Indexed allocation
  • 每个文件在文件分配表中有一个一级索引
  • 文件分配表指向该文件在磁盘上的索引块
  • 分配给文件的每个分区都在索引中都有一个表项
  • 优点:可顺序访问,也可直接访问

变长索引分配:

多层索引

混合索引

5.2 空闲空间管理
①Bit tables 位表

使用一个包含磁盘上每个块一个比特的向量(vetcor)

②Chained free portions 链式空闲区

通过在每个空闲部分中使用指针和长度值(pointer and length),可将空闲部分串联起来

③Indexing 空闲索引表

使用index table

④Free block list 空闲列表

Maintain the list of the numbers of all free blocks

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五倍子的代码空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值