首页 > 其他分享 >OS(十三):文件管理之外存分配方式

OS(十三):文件管理之外存分配方式

时间:2023-08-23 17:11:54浏览次数:34  
标签:文件 链接 方式 十三 盘块 索引 OS 分配

  文件分配外存空间时所要考虑的主要问题是:怎样才能有效地利用外存空间和如何提高对文件的访问速度。

  外存分配方式有连续分配、链接分配和索引分配。

  文件的物理结构直接与外存分配方式有关,采用不同的分配方式时,将形成不同的文件物理结构。

1、连续分配

1.1、连续分配方式

  连续分配要求为每一个文件分配一组相邻接的盘块,一组盘块的地址定义了磁盘上的一段线性地址。

  盘块位于一条磁道上,进行读/写时,不必移动磁头,仅当访问到一条磁道的最后一个盘块后,才需要移到下一条磁道,于是又去连续的读/写多个盘块。

  连续分配方式时,把逻辑文件中的记录顺序的存储到邻接的各物理盘块中,形成的文件结构称为顺序文件结构,此时的物理文件称为顺序文件。

  连续分配保证了逻辑文件中的记录顺序与存储器中文件占用盘块的顺序的一致性。

 0

  系统可通过目录项的"文件物理地址"字段,记录该文件第一个记录所在的盘块号和文件长度。

1.2、优缺点

1.2.1、优点

  顺序访问容易,系统从目录中找到该顺序文件所在的第一个盘块号,从此开始顺序的、逐个的盘块往西读/写,连续分配支持直接存取。

  顺序访问速度快,连续分配所装入的文件,占用的盘块可能是位于一条或几条相邻的磁道上,此时,磁头的移动举例最少。

1.2.2、缺点

  要求有连续的存储空间,每一个文件分配一个连续存储空间,会产生外部碎片;

  需事先知道文件的长度,根据其大小,在存储空间中找出一块大小足够的存储区,将文件装入

2、链接分配

  连续分配存在的问题:必须为一个文件分配连续的磁盘空间。

  链接分配:通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,形成的纹理文件称为链接文件。

  链接分配采用离散分配方式,消除了外碎片,提高了外存空间的利用率。

  链接方式分为 隐式链接 和 显示链接 两种形式。

2.1、隐式链接

  隐式链接分配方式:在文件目录的每个目录项中,都须含有指向链接文件的第一个盘块和最后一个盘块的指针。

  0

  隐式链接分配方式问题在于:只适合顺序访问,对随机访问的效率低下。

2.2、显示链接

  显示链接用于连接文件个物理块的指针,显示的存放在内存的一张链接表中,该表在整个磁盘仅设置一张。

  在该表中,每一条链的链首指针所对应的盘块号,均作为文件地址被填入响应文件的 FCB 的 物理地址 字段中,

  

  由于分配给文件的所有盘块都放在该表中,该表称为文件分配表(FAT File Allocation Table)。

3、索引分配

3.1、单级索引分配

3.1.1、链式分配方式缺点

  链式分配方式解决了连续分配方式存在的问题,但链式分配方式存在以下问题:

  不能支持高效的直接存取;

  FAT需占用较大的内存空间,因一个文件所占用的盘块的盘块号是随机地分配分布在FAT中,因而只有将整个FAT调入内存,才能保证在FAT中找到一个文件的所有盘块号。

3.1.2.索引分配方式

  索引分配:为每个文件分配一个索引块(表),再把分配给文件的所有盘块号都记录在该索引块中,因而索引块就是一个含有许多盘块号的数组。

  0

  在建立一个文件时,只需为之建立的目录项中填上指向该索引块的指针。

3.1.3、优缺点

  索引分配方式支持直接访问,当文件较大时,索引分配方式优于链接分配方式。

  索引分配方式的主要问题:需要花费较多的外存空间,每当建立一个文件,便要为之分配一个索引块,将分配给该文件的所有盘块号记录其中。

3.2、多级索引分配

  多级索引分配针对大文件。

  为一个大文件分配磁盘空间,若分配出去的盘块号已装满一个索引块时,OS便为该文件分配另一个索引块,用于将以后继续为之分配的盘块号记录于其中,通过链指针将个索引块按序链接起来。

  两级索引分配方式下各索引块的链接情况:

  

3.3、混合索引分配

  混合索引分配方式,将多种索引分配方式相结合而形成的一种分配方式。

3.3.1、直接地址

  每项存放的是该文件数据所在盘块的盘块号。

3.3.2、简接地址

  每项存放的是索引节点中的地址项。

 

标签:文件,链接,方式,十三,盘块,索引,OS,分配
From: https://www.cnblogs.com/RunningSnails/p/17652205.html

相关文章

  • 2、postgres数据导入
    目录postgres数据导入1、数据导入2、导入不存在数据库处理3、整库导入postgres数据导入1、数据导入psql-fuser_export.sql-hlocalhost-Umypguser-Wmypostgres参数说明:-f读取的sql文件-h导入的ip地址-U导入的用户-W导入指定的数据库2、导入不存在数据库处理......
  • 1、postgres数据导出
    目录postgres数据导出1、只导出所有对象的数据库结构2、只导出对应的数据库与数据3、只导出所有的表数据4、整个数据库导出postgres数据导出1、只导出所有对象的数据库结构pg_dump-fuser_export.sql-i-C-EUTF8-nmyschema-s-Umypguser-hlocalhost-Wmypostgres......
  • 1、postgres删除与创建schema
    目录postgres删除与创建schema1、删除schema语法2、创建schemapostgres删除与创建schema1、删除schema语法dropschema[schema_name];或者dropschema[ifexists][schema_name][cascade][restrict];参数说明:参数说明dropschema关键字,删除schema固定语法......
  • 利用 XGBoost 进行时间序列预测
    推荐:使用NSDT场景编辑器助你快速搭建3D应用场景XGBoost应用程序的常见情况是分类预测(如欺诈检测)或回归预测(如房价预测)。但是,也可以扩展XGBoost算法以预测时间序列数据。它是如何工作的?让我们进一步探讨这一点。时间序列预测数据科学和机器学习中的预测是一种技术,用于根据一......
  • CloudOS:物联网开发平台,云上开发,边端交付
    什么是物联网?    物联网(InternetofThings,简称IoT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的......
  • 使用.NET Jieba.NET 的 PosSegmenter 实现中文分词匹配
    ​目录引言1.什么是中文分词2.Jieba.NET简介3.PosSegmenter介绍4.实现中文分词匹配4.1安装Jieba.NET库4.2创建PosSegmenter实例4.3分词和词性标注4.4中文分词匹配5.总结 引言        在自然语言处理领域,中文分词是一个重要且基础的任务。中文文......
  • centos系统离线下载yum命令的rpm文件并安装
    因为我用的是windows服务器,因此需要一台虚拟机,用来安装centos,虚拟机的安装网上好多教程,这里不做过多介绍这次同样是按步操作在本地服务器创建下载目录->将yum文件下载到本地->在远程服务器上创建目录->上传文件到远程服务器目录->使用命令安装yum到服务器上这次的案例......
  • 021xxljob大量close_wait
    一、二、服务大量CLOSE_WAIT是如何造成的?如何解决?(1)CLOSE_WAIT是TCP连接的一种状态,表示收到对方发来的FIN包,己方还没有发FIN包。这通常是正常的TCP连接关闭过程中的中间状态。但是如果CLOSE_WAIT状态的连接过多,可能表示有错误或异常导致大量连接无法正常关闭。造成大量......
  • 配置Postern和ProxyCap实现更高级的功能
    寻找更高级的代理功能,让你实现更多可能性?那就来了解一下Postern和ProxyCap吧!本文将为你详细介绍这两款工具的配置方法和使用技巧,助你轻松完成代理设置,畅享更广阔的网络世界。一、什么是Postern和ProxyCap?Postern和ProxyCap是两款强大的代理工具,它们可以帮助你实现更高级的代理功能......
  • centos服务器系统下安装python3并与自带的python2
    centos服务器系统下安装python3并与自带的python2在centos中,自带有python2,因此需要经常安装python3。但是这里有一个坑,就是centos的yum是用python2写的,如果正常编译安装python3,那么yum就会直接挂了。为了方便以后编译安装python3,不用天天去网上找教程仅供参考。(因平台原因本文中www......