14 操作系统第四章 文件管理 文件逻辑结构 文件目录结构

文章目录

      • 1 初识文件管理
        • 1.1文件属性
        • 1.2 文件内部的数据应该怎样组织起来?
        • 1.3 文件之间应该怎样组织起来?
        • 1.4 操作系统应该向上提供哪些功能?
        • 1.5 文件应如何存放在外存?
        • 1.6 文件系统总览
      • 2 文件逻辑结构
        • 2.1 文件分类
        • 2.2 顺序文件
        • 2.3 索引文件
        • 2.4 索引顺序文件
        • 2.5 多级索引顺序文件
        • 2.6 文件逻辑结构小结
      • 3 文件目录结构
        • 3.1 文件控制块
        • 3.2 目录结构——单级目录结构
        • 3.3 目录结构——两级目录结构
        • 3.4 目录结构——多级目录结构(树形目录结构)
        • 3.5 目录结构——无环图目录结构
        • 3.6 索引结点(FCB的改进)
        • 3.7 文件目录小结

1 初识文件管理

文件——就是一组有意义的信息/数据集合

文件系统核心问题:

  1. 计算机中存放了各种各样的文件,一个文件有哪些属性? 文件内部的数据应该怎样组织起来? 文件之间又应该又应该怎么组织起来?
  2. 从下往上看,OS应提供哪些功能,才能方便用户、应用程序使用文件?
  3. 从上往下看,文件数据应该怎么存放在外存(磁盘)上?
    在这里插入图片描述

1.1文件属性

  1. 文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件。
  2. 标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性, 因此标识符只是操作系统用于区分各个文件的一种内部名称。
  3. 类型:指明文件的类型
  4. 位置:文件存放的路径(让用户使用)、在外存中的地址(操作系统 使用,对用户不可见)
  5. 大小:指明文件大小
  6. 创建时间、上次修改时间文件所有者信息
  7. 保护信息:对文件进行保护的访问 控制信息

1.2 文件内部的数据应该怎样组织起来?

  1. 无结构文件(如文本文件)——由一些二进制或字符流组成,又称“流式文件”
    在这里插入图片描述
  1. 有结构文件(如数据库表)——由一组相似的记录组成,又称“记录式文件”
    在这里插入图片描述
    数据项是文件系统中最基本的数据单位
    记录是一组相关数据项的集合

在这里插入图片描述

1.3 文件之间应该怎样组织起来?

在这里插入图片描述

1.4 操作系统应该向上提供哪些功能?

  1. “创建文件”, (点击新建后,图形化交互进程在背后调用了“create系统调用”)
  2. “读文件”,将文件数据读入内存,才能让CPU处理(双击后, “记事本”应用程序通过操作系统提供的“读文件”功能,即read系统调用,将文件数据从外存读入内存,并显示在屏幕上)
    在这里插入图片描述
  3. “写文件”,将更改过的文件数据写回外存(我们在“记事本”应用程序中编辑文件内容,点击“保存”后, “记事本”应用程序通过操作系统提供的“写文件”功能,即write系统调用, 将文件数据从内存写回外存
  4. “删除文件”(点了“删除”之后, 图形化交互进程通过操作系统提供的 “删除文件”功能,即delete系统调用, 将文件数据从外存中删除)

在这里插入图片描述

1.5 文件应如何存放在外存?

在这里插入图片描述
在这里插入图片描述

1.6 文件系统总览

在这里插入图片描述

2 文件逻辑结构

2.1 文件分类

在这里插入图片描述

按文件是否有结构分类,可以分为无结构文件、有结构文件两种。

  1. 无结构文件:文件内部的数据就是一系列二进制流或字符流组成。又称“流式文件”。如:Windows操作系统中的.txt文件。
  2. 有结构文件:由一组相似的记录组成,又称“记录式文件”。每条记录又若干个数据项组成。如:数据库表文件。一般来说,每条记录有一个数据项可作为关键字(作为识别不同记录的ID)
    在这里插入图片描述

有结构文件根据各条记录的长度(占用的存储空间)是否相等,又可分为定长记录和可变长记录两种。

  1. 定长记录
    在这里插入图片描述
  2. 可变长记录
    在这里插入图片描述

2.2 顺序文件

顺序文件:文件中的记录一个接一个地顺序排列(逻辑上),记录可以是定长的或可变长的。各个记录在物理上可以顺序存储或链式存储。
在这里插入图片描述
在这里插入图片描述
假设:已经知道了文件的起始地址(也就是第一个记录存放的位置)
思考1:能否快速找到第i个记录对应的地址?(即能否实现随机存取)
思考2:能否快速找到某个关键字对应的记录存放的位置?

结论:定长记录的顺序文件,若物理上采用顺序存储,则可实现随机存取;
若能再保证记录的顺序结构,则可实现快速检索(即根据关键字快速找到对应记录)
在这里插入图片描述

注:一般来说,考试题目中所说的“顺序文件”指的是物理上顺序存储的顺序文件。之后的讲解中提到的顺序文件也默认如此。
可见,顺序文件的缺点是增加/删除一个记录比较困难(如果是串结构则相对简单)

2.3 索引文件

对于可变长记录文件,要找到第i个记录,必须先顺序第查找前i-1个记录,但是很多应用场景中又必须使用可变长记录。如何解决这个问题?

在这里插入图片描述

  1. 索引表本身是定长记录的顺序文件。因此可以快速找到第i个记录对应的索引项。
  2. 可将关键字作为索引号内容,若按关键字顺序排列,则还可以支持按照关键字折半查找。
  3. 每当要增加/删除一个记录时,需要对索引表进行修改。由于索引文件有很快的检索速度,因此主要用于对信息处理的及时性要求比较高的场合。

2.4 索引顺序文件

思考索引文件的缺点:每个记录对应一个索引表项,因此索引表可能会很大。

比如:文件的每个记录平均只占8B,、而每个索引表项占32个字节,那么索引表都要比文件内容本身大4倍,这样对存储空间的利用率就太低了。

索引顺序文件是索引文件和顺序文件思想的结合。索引顺序文件中,同样会为文件建立一张索引表,但不同的是:并不是每个记录对应一个索引表项,而是一组记录对应一个索引表项。
在这里插入图片描述

若一个顺序文件有10000个记录,则根据关键字检索文件,只能从头开始顺序查找(这里指的并不是定长记录、顺序结构的顺序文件),平均须查找5000个记录。

若采用索引顺序文件结构,可把10000个记录分为V10000=100组,每组100个记录。则需要先顺序查找索引表找到分组(共100个分组,因此索引表长度为100,平均需要查50次),找到分维后,再在分组中顺序查找记录(每个分组100个记录,因此平均需要查50次)。可见,采用索引顺序文件结构后,平均查找次数减少为50+50=100次。

同理,若文件共有106个记录,则可分为1000个分组,每个分组1000个记录。根据关键字检索一个记录平均需要查找500+500=1000次。这个查找次数依然很多,如何解决呢?

2.5 多级索引顺序文件

为了进一步提高检索效率,可以为顺序文件建立多级索引表。

例如,对于一个含106个记录的文件,可先为该文件建立一张低级索引表,每100个记录为一组,故低级索引表中共有10000个表项(即10000个定长记录),再把这10000个定长记录分组,每组100个,为其建立顶级索引表,故顶级索引表中共有100个表项。
在这里插入图片描述

2.6 文件逻辑结构小结

在这里插入图片描述

3 文件目录结构

文件目录结构即我们很熟悉的Windows操作系统的“文件夹”

3.1 文件控制块

在这里插入图片描述

  1. FCB的有序集合称为“文件目录”,一个FCB就是一个文件目录项
  2. FCB中包含了文件的基本信息(文件名、物理地址、逻辑结构、物理结构等),存取控制信息(是否可读/可写、禁止访问的用户名单等),使用信息(如文件的建立时间、修改时间等)。最重要,最基本的还是文件名、文件存放的物理地址。
  3. FCB实现了文件名和文件之间的映射。使用户(用户程序)可以实现“按名存取

需要对目录进行哪些操作?

  1. 搜索:当用户要使用一个文件时,系统要根据文件名搜索目录,找到该文件对应的目录项
  2. 创建文件:创建一个新文件时,需要在其所属的目录中增加一个目录项
  3. 删除文件:当删除一个文件时,需要在目录中删除相应的目录项
  4. 显示目录:用户可以请求显示目录的内容,如显示该目录中的所有文件及相应属性
  5. 修改目录:某些文件属性保存在目录中,因此这些属性变化时需要修改相应的目录项(如:文件重命名)

3.2 目录结构——单级目录结构

早期操作系统并不支持多级目录,整个系统中只建立一张目录表,每个文件占一个目录项。
在这里插入图片描述

单级目录实现了“按名存取”,但是不允许文件重名。在创建一个文件时,需要先检查目录表中有没有重名文件,确定不重名后才能允许建立文件,并将新文件对应的目录项插入目录表中。
显然,单级目录结构不适用于多用户操作系统。

3.3 目录结构——两级目录结构

早期的多用户操作系统,采用两级目录结构。分为主文件目录(MFD,Master File Directory)和用户文件目录(UFD,User Flie Directory)。
在这里插入图片描述

3.4 目录结构——多级目录结构(树形目录结构)

在这里插入图片描述

用户(或用户进程)要访问某个文件时要用文件路径名标识文件,文件路径名是个字符串。各级目录之间用“/”隔开。从根目录出发的路径称为绝对路径。

  1. 系统根据绝对路径一层一层地找到下一级目录。
  2. 刚开始从外存读入根目录的目录表;找到“照片”目录的存放位置后,从外存读入对应的目录表;再找到“2015-08”目录的存放位置,再从外存读入对应目录表;最后才找到文件“自拍.jpg”的存放位置。整个过程需要3次读磁盘I/0操作。
  3. 很多时候,用户会连续访问同一目录内的多个文件(比如:接连查看“2015-08”目录内的多个照片文件),显然,每次都从根目录开始查找,是很低效的。因此可以设置一个“当前目录”。

引入“当前目录”和“相对路径”后,磁盘I/O的次数减少了。这就提升了访问文件的效率。

树形目录结构可以很方便地对文件进行分类,层次结构清晰,也能够更有效地进行文件的管理和保护。但是,树形结构不便于实现文件的共享。为此,提出了“无环图目录结构”。

3.5 目录结构——无环图目录结构

在这里插入图片描述

  1. 可以用不同的文件名指向同一个文件,甚至可以指向同一个目录(共享同一目录下的所有内容)。
  2. 需要为每个共享结点设置一个共享计数器,用于记录此时有多少个地方在共享该结点。用户提出删除结点的请求时,只是删除该用户的FCB、并使共享计数器减1,并不会直接删除共享结点。
  3. 只有共享计数器减为0时,才删除结点。
    注意:共享文件不同于复制文件。在共享文件中,由于各用户指向的是同一个文件,因此只要其中一个用户修改了文件数据,那么所有用户都可以看到文件数据的变化。

3.6 索引结点(FCB的改进)

在这里插入图片描述
其实在查找各级目录的过程中只需要用到“文件名”这个信息,只有文件名匹配时,才需要读出文件的其他信息。因此可以考虑让目录表“瘦身”来提升效率。

  1. 当找到文件名对应的目录项时,才需要将索引结点调入内存,索引结点中记录了文件的各种信息,包括文件在外存中的存放位置,根据“存放位置”即可找到文件。
  2. 存放在外存中的索引结点称为“磁盘索引结点”,当索引结点放入内存后称为“内存索引结点”。
  3. 相比之下内存索引结点中需要增加一些信息,比如:文件是否被修改、此时有几个进程正在访问该文件等。

在这里插入图片描述

思考有何好处?

假设一个FCB64B,磁盘块的大小为1KB,则每个盘块中只能存放16个FCB。若一个文件目录中共有640个目录项,则共需要占用640/16=40个盘块。因此按照某文件名检索该目录,平均需要查询320个目录项,平均需要启动磁盘20次(每次磁盘I/O读入一块)。
若使用索引结点机制,文件名占14B,索引结点指针站2B,则每个盘块可存放64个目录项,那么按文件名检索目录平均只需要读入320/64=5个磁盘块。显然,这将大大提升文件检索速度。

3.7 文件目录小结

在这里插入图片描述
每一级目录结构都是解决了上级目录结构留下的问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482244.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AlphaFold 和 AI 蛋白质折叠革命的下一步是什么

来源:ScienceAI编辑:萝卜皮十多年来,分子生物学家 Martin Beck 团队一直在努力拼凑世界上最难的拼图游戏之一:人类细胞中最大分子机器的详细模型。这种被称为核孔复合体的庞然大物控制着分子进出细胞核的流动,也就是基…

15 操作系统第四章 文件管理 文件的物理结构 文件存储空间管理

文章目录1 文件的物理结构 (文件分配方式)1.1 文件块、磁盘块1.2 文件分配方式——连续分配1.3 文件分配方式——链接分配1.3.1 链接分配——隐式链接1.3.2 链接分配——显式链接1.3.3 链接分配(总结)1.4 文件分配方式——索引分配…

专访微软Greg Yang,构建神经网络的底层语言,探索AI的“万物理论”

来源:智源社区为了进一步解读这一工作背后的意义,智源社区采访了论文一作、微软研究院高级研究员Greg Yang(杨格)。采访中,我们不仅了解了Transfer的背景,以及项目背后更为远大的目标,也了解到了…

16 操作系统第四章 文件管理 文件的基本操作 文件共享 文件保护 文件系统的层次结构

文章目录1 文件的基本操作1.1 创建文件1.2 删除文件1.3 打开文件1.4 关闭文件1.5 读文件1.6 写文件1.7 文件基本操作小结2 文件共享2.1 基于索引结点的共享方式(硬链接)2.2 基于符号链的共享方式(软链接)2.3 文件共享小结3 文件保…

人工智能与量子计算在有前途的新忆阻器中融合

来源:ScienceAI编辑:萝卜皮近年来,计算在两个主要方面取得了进步——机器学习方面的突破,以开发通过经验自动改进的算法,以及对理论上证明比任何超级计算机更强大的量子计算机的研究。现在,科学家们已经创建…

17 操作系统第四章 磁盘管理 磁盘的结构 磁盘调度算法 减少磁盘延迟时间的方法

文章目录1 磁盘的结构1.1 磁盘、磁道、扇区1.2 磁盘如何读取数据1.4 盘面、柱面、磁盘的物理地址1.5 磁盘的分类1.6 磁盘的结构小结2 磁盘调度算法2.1 一次磁盘读/写操作需要的时间2.2 先来先服务算法(FCFS)2.3 最短寻找时间优先(SSTF&#x…

深度学习准备「爆破」著名的欧拉方程

来源:ScienceAI编辑:绿萝250 多年来,数学家一直试图「爆破」物理学中一些最重要的方程:那些描述流体如何流动的方程。如果他们成功了,那么他们将会发现一种情况,在这种情况下,这些方程会被打破—…

18 操作系统第五章 设备管理 IO设备的基本概念和分类 IO控制器 IO控制方式 IO软件层次结构 IO核心子系统 假脱机技术 设备的分配与回收 缓冲区管理

文章目录1 IO设备的基本概念和分类1.1 什么是I/O设备1.2 I/O设备分类2 IO控制器2.1 I/O设备组成2.2 I/O控制器功能2.3 I/O控制器的组成2.4 寄存器编址方式2.5 IO控制器小结3 IO控制方式3.1 程序直接控制方式3.2 中断驱动方式3.3 DMA方式3.3.1 DMA控制器3.3.2 DMA方式3.4 通道控…

Nature发布第一张人类造血干细胞发育的全面路线图

来源:生物通加州大学洛杉矶分校(UCLA)的科学家创建了一份史无前例的路线图,追踪了人类胚胎中造血干细胞发育的每一步,为人们在实验室中生产功能齐全的造血干细胞提供了蓝图。来自胚胎主动脉壁的人类造血干细胞这项研究…

1 计算机组成原理第一章 计算机系统概述 计算机发展历程、层次结构、性能指标

文章目录1 计算机发展历程1.1 软硬件发展1.2 分类以及发展方向2 计算机系统层次结构2.1 计算机系统组成2.1.1 硬件的基本组成2.1.2 软件系统2. 2 CPU及其工作过程2.2.1 运算器2.2.2 控制器2.2.3 计算机的工作过程2.2.4 计算机系统层次结构2.2.5 存储器3 计算机性能指标3.1 容量…

Google 与 GitHub 结盟,为保护软件供应链而战!

出品:CSDN(ID:CSDNnews)整理:章雨铭 责编:屠敏4月7日,据谷歌透露,它一直在跟GitHub合作,创建一种防伪方法,用于签署源代码,解决像影响Solar…

5 计算机组成原理第四章 指令系统

文章目录1 指令格式1.1 指令定义1.2 指令格式1.3 指令格式-地址码1.4 指令格式-操作码1.5 操作码分类1.6 操作类型2 数据存放指令寻址2.1 数据存放方式2.2 指令寻址2.3 操作数类型2.4 数据寻址2.4.1立即寻址2.4.2 直接寻址2.4.3 间接寻址2.4.4 寄存器寻址2.4.5 寄存器间接寻址2…

【Brain】脑智前沿科普|用数学解释大脑学习的过程

来源:脑与心智毕生发展研究中心原文作者:Kate Nussenbaum,Alexandra O. Cohen原文编辑:David Sheinberg小小评阅人:Brown University Pre-College Stem I Program中文翻译版权:脑与心智毕生发展研究中心中文…

6 计算机组成原理第五章 中央处理器 CPU功能和结构 指令执行过程

文章目录1 CPU功能和基本结构1.1 CPU的功能1.2 运算器的基本结构1.3 控制器的基本结构1.4 CPU基本结构1.5 CPU的功能和基本结构小结2 指令周期和数据流2.1 指令执行过程2.2 指令周期流程2.3 指令周期的数据流-取指周期2.4 指令周期的数据流-间址周期2.5 指令周期的数据流-执行周…

7 计算机组成原理第五章 中央处理器 数据通路

文章目录1 数据通路的功能和基本结构单总线1.1 数据通路的功能1.2 数据通路-基本结构单总线2 数据通路-CPU内部单总线方式2.1 三种结构之间数据传送方式2.2 CPU内部单总线方式-例题3 专用通路3.1 专用数据通路方式3.2 专用数据通路方式-例题1 数据通路的功能和基本结构单总线 …

新研究表明 深层神经网络的功能存在局限性

GETTY IMAGES/IEEE SPECTRUM来源:IEEE电气电子工程师深度神经网络越来越有助于设计微芯片,预测蛋白质如何折叠,并在复杂游戏中胜过人们。然而,研究人员现在发现,这些人工智能系统的稳定性和准确度在理论上存在根本的限…

8 计算机组成原理第五章 中央处理器 控制器 硬布线控制器 微程序控制器

文章目录1 控制器的功能和工作原理1.1 控制器的结构和功能1.2 控制单元的输入和输出1.2.1 控制单元输入1.2.2 控制单元输出2 硬布线控制器2.1 CPU的控制方式2.2 安排微操作时序的原则(最短时间完成,参考)2.2.1 安排微操作时序-取指周期2.2.2 …

从特斯拉AI团队学到的九条方法论

来源:AI前线作者:Gary Chan译者:Sambodhi策划:李冬梅尽管 OpenAI 以其在自然语言处理上的成就而著称,而 DeepMind 则以强化学习和决策而闻名,特斯拉(Tesla)无疑是计算机视觉领域最有…

9 计算机组成原理第五章 中央处理器 指令流水线

文章目录1 指令流水线基本概念性能指标1.1 指令流水的定义1.1.1 指令分法1.1.2 指令执行时间1.2 流水线的表示方法1.3 流水线的性能指标2 指令流水线影响因素分类2.1 机器周期的设置2.2 影响流水线的因素2.2.1 数据相关(数据冲突)三种类型2.2.2 流水线影…

【赛迪智库】美国允许自动驾驶汽车取消方向盘对我国L4级自动驾驶的影响

来源:赛迪智库日前,美国国家公路交通安全管理局(NHTSA)发布了最终版的《无人驾驶汽车乘客保护规定》,其中对于由自动驾驶系统操作的车辆将不被要求配备传统方向盘等手动控制装置。新规有望促进美国L4级自动驾驶汽车商业…