第二十一讲 文件系统

  1. 文件系统是操作系统中管理持久性数据的子系统,提供数据存储和访问功能。

    • 组织、检索、读写访问数据
    • 大多数计算机系统都有文件系统
    • Google 也是一个文件系统
  2. 文件是具有符号名,由字节序列构成的数据项集合

    • 文件系统的基本数据单位
    • 文件名是文件的标识符号
  3. 文件系统的功能

    • 分配文件磁盘空间

      • 管理文件块(位置和顺序)
      • 管理空闲空间(位置)
      • 分配算法 (策略)
    • 管理文件集合
      • 定位:文件及其内容
      • 命名:通过名字找到文件
      • 文件系统结构:文件组织方式
    • 数据可靠和安全
      • 安全:多层次保护数据安全
      • 可靠:持久保存文件,避免系统崩溃、媒体错误、攻击等
  4. 文件头:文件系统元数据中的文件信息

    • 文件属性:名称、类型、位置、大小、保护、创建者、创建时间、最近修改时间、…
    • 文件存储位置和顺序
  5. 文件描述符

    • 进程访问文件数据前必须先“打开”文件,操作系统为每个进程维护一个打开文件表,文件描述符是打开文件的标识
    • 文件指针:记录最近一次读写位置。每个进程分别维护自己的打开文件指针
    • 文件打开次数:当前打开文件的次数。最后一个进程关闭文件时,将其从打开文件表中移除
    • 文件的磁盘位置:缓存数据访问信息
    • 访问权限:每个进程的文件访问模式信息
  6. 文件的用户视图和系统视图

    • 文件的用户视图:持久的数据结构
    • 系统访问接口:字节序列的集合(UNIX),系统不关心存储在磁盘上的数据结构
    • 文件的系统视图:数据块的集合,数据块是逻辑存储单元,而扇区是物理存储单元。
  7. 文件系统中的基本操作单位是数据块

    • 例如, getc()和putc()即使每次只访问1字节的数据,也需要缓存目标数据4096字节
    • 进程读文件:获取字节所在的数据块,返回数据块内对应部分
    • 进程写文件:获取数据块,修改数据块中对应部分,写回数据块
  8. 文件别名

    • 硬链接: 多个文件项指向一个文件
    • 软链接: 以“快捷方式”指向其他文件,通过存储真实文件的逻辑名称来实现
  9. 文件表示:如何表示分配给一个文件数据块的位置和顺序

    • 分配方式

      • 连续分配
      • 链式分配
      • 索引分配
    • 指标
      • 存储效率:外部碎片等
      • 读写性能:访问速度
  10. 连续分配:文件头指定起始块和长度

    • 优点

      • 文件读取表现好
      • 高效的顺序和随机访问
    • 缺点
      • 存在外部碎片
      • 文件增长问题
  11. 链式分配:文件以数据块链表方式存储,文件头包含了到第一块和最后一块的指针

    • 优点

      • 创建、增大、缩小很容易
      • 没有碎片
    • 缺点
      • 无法实现真正的随机访问
      • 可靠性差,破坏一个链,后面的数据块就丢了
  12. 索引分配:为每个文件创建一个索引数据块,指向文件数据块的指针列表,文件头包含了索引数据块指针

    • 优点

      • 创建、增大、缩小很容易
      • 没有碎片
      • 支持直接访问
    • 缺点
      • 当文件很小时,存储索引的开销
      • 如何处理大文件?(链式索引块、多级索引块)
  13. UFS多级索引分配

    • 文件头包含13个指针

      • 前10个指针指向数据块
      • 第11个指针指向索引块
      • 第12个指针指向二级索引块
      • 第13个指针指向三级索引块
    • 效果
      • 提高了文件大小限制阈值
      • 动态分配数据块,文件扩展很容易
      • 小文件开销小
      • 只为大文件分配间接数据块,大文件在访问数据块时需要大量查询
  14. 内部碎片 vs 外部碎片

    • 内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间
    • 外部碎片是处于任何两个已分配区域或页面之间的空闲存储块。这些存储块的总和可以满足当前申请的长度要求,但是由于它们的地址不连续或其他原因,使得系统无法满足当前申请。

第二十二讲 实验八 文件系统

  1. 文件系统层次结构图

  1. lab8文件系统具有繁多的数据结构和函数调用,为分析硬盘上的数据与内存中的数据的关系,可采取以下思路

    • 自下而上,谁访问谁
    • 自上而下,谁包含谁
  2. SFS硬盘布局

superblock | root-dir inode | freemap | Inode/File Data/Dir Data blocks
  1. 文件系统的抽象

    • 文件
    • 目录项
    • 索引节点
    • 安装点

《Tsinghua os mooc》第21~22讲 文件系统的更多相关文章

  1. 第21/22讲 UI_布局 之 线性布局

    第21/22讲 UI_布局 之 线性布局 布局管理就是组件在activity中呈现方式,包括组件的大小,间距和对齐方式等. Android提供了两种布局的实现方式: 1.在xml配置文件中声明:这种方 ...

  2. 《Tsinghua os mooc》第1~4讲 启动、中断、异常和系统调用

    资源 OS2018Spring课程资料首页 uCore OS在线实验指导书 ucore实验基准源代码 MOOC OS习题集 OS课堂练习 Piazza问答平台 暂时无法注册 疑问 为什么用户态和内核态 ...

  3. 《Tsinghua os mooc》第17~20讲 同步互斥、信号量、管程、死锁

    第十七讲 同步互斥 进程并发执行 好处1:共享资源.比如:多个用户使用同一台计算机. 好处2:加速.I/O操作和CPU计算可以重叠(并行). 好处3:模块化. 将大程序分解成小程序.以编译为例,gcc ...

  4. 《Tsinghua os mooc》第11~14讲 进程和线程

    第十一讲 进程和线程 进程 vs 程序 程序 = 文件 (静态的可执行文件) 进程 = 执行中的程序 = 程序 + 执行状态 进程的组成包括程序.数据和进程控制块 同一个程序的多次执行过程对应为不同进 ...

  5. 《Tsinghua os mooc》第15~16讲 处理机调度

    第十五讲 处理机调度 进程调度时机 非抢占系统中,当前进程主动放弃CPU时发生调度,分为两种情况: 进程从运行状态切换到等待状态 进程被终结了 可抢占系统中,中断请求被服务例程响应完成时发生调度,也分 ...

  6. Hadoop深入浅出实战经典视频教程(共22讲)

    该视频教程共22讲,由王家林老师主讲. --------------------------------------------------------- 第01讲:为什么会有第一代大数据技术Hado ...

  7. 2016年12月27日 星期二 --出埃及记 Exodus 21:22

    2016年12月27日 星期二 --出埃及记 Exodus 21:22 "If men who are fighting hit a pregnant woman and she gives ...

  8. 《Tsinghua oc mooc》第8~10讲 虚拟内存管理

    资源 OS2018Spring课程资料首页 uCore OS在线实验指导书 ucore实验基准源代码 MOOC OS习题集 OS课堂练习 Piazza问答平台 暂时无法注册 第八讲 虚拟内存概念 为什 ...

  9. 《Tsinghua oc mooc》第5~7讲 物理内存管理

    资源 OS2018Spring课程资料首页 uCore OS在线实验指导书 ucore实验基准源代码 MOOC OS习题集 OS课堂练习 Piazza问答平台 暂时无法注册 疑问 段式内存管理中,逻辑 ...

随机推荐

  1. 内置对象(Math、Date、String、Array、基本包装类型)

    一.内置对象 js中三种对象:内置对象.自定义对象.浏览器对象 实例对象是指通过构造函数创建出来,然后实例化的对象(new关键字) 静态对象是指不需要创建,直接调用的对象,可以在整个JS里调用的公共对 ...

  2. python2和python3区别

    字符编码: py3中默认字符编码是unicode:py2中默认字符编码是 ASCII,如果文件中出现了中文,需要在顶部加入coding声明#coding:utf8 让用户输入:py3中直接使用inpu ...

  3. POI2010 Bridges

    好题\(Q\omega Q\) 我们考虑这个东西要求最大值最小,显然一眼二分答案对吧. 问题在于如何\(check\),我们二分答案之后把问题转换成了混合图如何求欧拉回路. 考虑欧拉回路的性质,每一个 ...

  4. 走进JavaWeb技术世界6:Tomcat5总体架构剖析

      本文以 Tomcat 5 为基础,也兼顾最新的 Tomcat 6 和 Tomcat 4.Tomcat 的基本设计思路和架构是具有一定连续性的. Tomcat 总体结构 Tomcat 的结构很复杂, ...

  5. Java知识体系思维导图

    Java知识体系,为方便预览,将思维导图上传至印象笔记,博客园直接上传图片受限于图片大小,暂时接触这么多,待以后丰富 https://app.yinxiang.com/shard/s24/nl/272 ...

  6. php手记之03-tp5渲染视图

    // 渲染视图 模块@文件/文件名 // return view('index@index/test'); // return view('index@test/test'); // return $ ...

  7. nginx配置监控

    通过查看Nginx的并发连接,我们可以更清除的知道网站的负载情况.Nginx并发查看有两种方法(之所以这么说,是因为笔者只知道两种),一种是通过web界面,一种是通过命令,web查看要比命令查看显示的 ...

  8. MediaPlayer: BufferQueue has been abandoned 解决方案

    最近在做一个播放器,需要实现一个从小屏切换到全屏的效果,我用的是TextureView + MediaPlayer 的方式去实现,当需要切换成全屏时,我在 TextureView 的 onSurfac ...

  9. Docs-.NET-C#-指南-语言参考-预处理器指令:#elif(C# 参考)

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#elif(C# 参考) 1.返回顶部 1. #elif(C# 参考) 2015/07/20 #elif 可以创建复合条件指令. ...

  10. SQL-W3School-函数:SQL AVG() 函数

    ylbtech-SQL-W3School-函数:SQL AVG() 函数 1.返回顶部 1. 定义和用法 AVG 函数返回数值列的平均值.NULL 值不包括在计算中. SQL AVG() 语法 SEL ...