[笔记]《操作系统精髓与设计原理》---(7)文件管理

概述

文件系统架构
这里写图片描述

  • 最底层,设备驱动程序程序直接与外围设备通信。
  • 基本文件系统(物理I/O层),处理在磁盘间或磁带系统间交换的数据块,关注的是这些块在辅助存储和内存缓冲区中的位置,不关注数据内容或所涉及的文件结构。
  • 基本I/O管理,程序负责所有文件I/O的初始和终止。
  • 逻辑I/O,使用户和应用程序能够访问到记录。

文件管理功能
这里写图片描述
文件管理系统作为1个单独的系统实用程序,和操作系统关注的是不同方面的内容。关注记录的处理。

文件组织和访问

文件组织重要原则
• 访问快速
• 易于修改
• 节约存储空间
• 维护简单
• 可靠性

基本组织
• 堆
• 顺序文件
• 索引顺序文件
• 索引文件
• 直接或者散列文件

堆:按到达顺序收集。

顺序文件:每条记录都使用同一种固定格式。记录有相同的长度,由相同数目、长度固定的域按特定的顺序组成。
关键域,通常是每条记录的第一个域。记录按关键域存储:文本关键域按字母顺序,数字按数字顺序。

索引顺序
保留顺序文件的特征:记录按照关键域的顺序组织起来。
增加特征:用于支持随机访问的文件索引和溢出文件。
最简单的一级索引:

  1. 索引文件由两个域组成:关键域和指向主文件的指针,关键域和主文件中的关键域相同
  2. 为找一个特定的域,先找索引,关键域值等于目标关键域(或者位于目标关键域之前且最大的索引)
  3. 在该索引的指针所指的主文件中的位置开始找。

索引文件
索引顺序保留了顺序文件的一个限制:基于文件的一个域进行处理。当需要基于其他属性而非关键域查找一条记录时,这两种形式的顺序文件都不能胜任。

采用多索引结构,每种可能成为查找条件的域都有一个索引。放弃顺序、关键字概念,只能通过索引来访问记录。结果是对记录的放置位置不再有限制,只要至少1个索引指针指向这条记录就可以。

直接文件或散列文件
这里写图片描述


B树


linux虚拟文件系统

利用虚拟文件系统(Virtual File System, VFS)来支持大量的文件管理系统和文件结构。
这里写图片描述

这里写图片描述

VFS作用:

  1. 进程发起一个面向文件的系统调用时,内核调用VFS的函数。
  2. 该函数处理完与具体文件系统无关的操作后,调用目标文件系统中的相应函数。(通过1个转换VFS调用到目标文件系统调用的映射函数实现)
  3. 目标文件系统转换文件系统请求到面向设备的指令。

VFS主要4个对象:

  • 超级块对象(superblock object):代表一个特定的已挂载的文件系统
  • 索引节点对象(inode object):代表一个特定的文件
  • 目录项对象(dentry object):代表一个特定的目录项
  • 文件对象(file object):代表一个与进程相关的打开的文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值