操作系统之文件的物理结构(非空闲块管理)

目录

连续分配

特点

优势

劣势

链接分配

概念

隐式链接(对用户透明,题目默认)

特点:

优势:

劣势:

显式链接

特点:

优势:

劣势:

索引分配

概念:

特点:

工作原理:

优势

劣势

优化方法


连续分配

特点
  • 物理块号计算:文件的物理块号可以通过起始块号(由文件控制块FCB提供)加上逻辑块号来计算。
  • 文件存储:每个文件在磁盘上占据一组连续的块。
优势
  • 随机存取:由于文件块是连续的,可以快速定位到文件中的任意位置,实现随机存取。
劣势
  • 文件长度动态增加困难:文件长度不宜动态增加,因为需要保证块的连续性,这可能导致外部碎片的产生。
  • 空间利用率问题:如果文件被删除或缩短,留下的空闲块可能太小而无法被其他文件使用,造成空间浪费。

链接分配

概念

链接分配通过离散分配方式来组织文件的块,从而消除了外部碎片。

隐式链接(对用户透明,题目默认)

隐式链接是一种常见的链接分配方式,它使得文件的块可以非连续地分布在磁盘的任何位置。

特点:
  • 离散分配:文件的各个块可以随机分布在磁盘上,不要求连续。
  • 指针链:除了最后一个块外,每个磁盘块都包含一个指向下一个磁盘块的指针。
优势:
  • 空间利用率:由于块可以任意分配,磁盘空间得到了更有效的利用,减少了外部碎片。
  • 灵活性:文件可以动态增长,不需要预先分配连续的空间。
劣势:
  • 顺序访问:隐式链接仅支持顺序访问,如果要访问文件中的特定块,必须从第一个块开始,依次通过指针找到目标块。
  • 访问效率低:查找特定块可能需要多次磁盘操作,这会降低访问效率。
  • 额外空间:每个块中的指针也需要占用一定的存储空间。
显式链接

显式链接则是将文件的块号显式地存放在内存中的文件分配表(FAT)中,以此来管理文件的物理块。

特点:
  • FAT表:文件的每个块号都存储在一个称为FAT的表中,该表通常驻留在内存中。
  • 随机访问:通过FAT表,可以直接访问文件的任意块,无需顺序遍历。
优势:
  • 检索速度:由于可以直接通过FAT表定位到文件的任意块,因此显著提高了文件的检索速度。
  • 支持随机访问:用户可以随机访问文件的任何部分,而不必从文件开头开始。
劣势:
  • 内存占用:FAT表需要占用较多的内存空间,尤其是在处理大量文件和磁盘块时。
  • 维护开销:文件系统的每次修改(如文件的创建、删除或扩展)都可能需要更新FAT表,这增加了文件系统的维护开销。
  • 性能瓶颈:如果FAT表过大,频繁的读写操作可能会导致性能瓶颈。

索引分配

概念:

索引分配的核心思想是将文件的所有磁盘块号集中存放在一个称为索引块的数据结构中。这个索引块充当了文件与存储介质之间的桥梁,使得文件的随机存取变得异常高效。

特点:
  • 索引块:每个文件都有一个与之对应的索引块,这个索引块包含了文件所有数据块的地址信息。
  • 随机存取:由于索引块中记录了文件所有块的地址,用户可以直接通过索引块定位到文件中的任意块,无需顺序访问,从而实现了高效的随机存取。
  • 灵活性:索引分配不受文件块连续性的限制,文件的数据块可以分散在存储介质的任何位置,这样不仅减少了外部碎片,还提高了磁盘空间的利用率。
工作原理:
  1. 当文件被创建时,文件系统为其分配一个索引块。
  2. 索引块中为文件的数据块建立目录项,每个目录项包含一个指向实际数据块的指针。
  3. 用户访问文件时,首先读取索引块,根据需要访问的逻辑块号找到对应的数据块地址,然后直接访问该数据块。
优势
  • 快速定位:索引分配允许用户快速定位到文件中的任意位置,大大减少了访问文件时的磁盘寻址时间。
  • 动态扩展:文件长度可以动态增加,只需在索引块中添加新的块地址即可,无需考虑块的连续性。
  • 减少碎片:由于数据块可以非连续存储,有效减少了外部碎片,提高了磁盘空间的利用率。
劣势
  • 额外的存储开销:索引块本身也需要占用存储空间,对于小文件来说,这可能造成一定的空间浪费。
  • 管理复杂度:索引块的管理相对复杂,需要文件系统精心设计以维护其一致性。
优化方法
  • 链接方案:对于大文件,可以将多个索引块链接在一起,以扩展索引块的数量。
  • 多层索引:类似于操作系统的多级页表,多层索引解决了单个索引块大小限制的问题,允许更大的文件。
  • 混合索引:结合了直接索引和多层索引的优点,对于小文件使用直接索引,对于大文件使用多层索引或链接,以优化存储效率和访问速度。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在 Linux系统用中挂载和管理磁盘分区

在 Linux 系统中,挂载和管理磁盘分区是系统管理的基本任务之一。以下是详细步骤,帮助你完成这一过程。 1. 查看现有磁盘和分区 首先,使用以下命令来查看系统中的磁盘和分区: bash 复制 lsblk或者使用: bash 复制…

Opencv图片的旋转和图片的模板匹配

图片的旋转和图片的模板匹配 目录 图片的旋转和图片的模板匹配1 图片的旋转1.1 numpy旋转1.1.1 函数1.1.2 测试 1.2 opencv旋转1.2.1 函数1.2.2 测试 2 图片的模板匹配2.1 函数2.2 实际测试 1 图片的旋转 1.1 numpy旋转 1.1.1 函数 np.rot90(kl,k1),k1逆时针旋转9…

【YOLOv8杂草作物目标检测】

YOLOv8杂草目标检测 算法介绍模型和数据集下载 算法介绍 YOLOv8在禾本科杂草目标检测方面有显著的应用和效果。以下是一些关键信息的总结: 农作物幼苗与杂草检测系统:基于YOLOv8深度学习框架,通过2822张图片训练了一个目标检测模型&#xff…

vue3 react使用高德离线地图,最新解决内网情况首次不能加载离线地图2025年1月10日

下载离线资源 下载地址 https://download.csdn.net/download/u010843503/90234612 2、部署私有化瓦片资源 ngxin中配置如下 server{listen 18082;server_name localhost;location / {root D:/GisMap/_alllayers;#try_files $uri $uri/ /index.html;#index index.html;} }下载…

Hbuilder ios 离线打包sdk版本4.36,HbuilderX 4.36生成打包资源 问题记录

1、打包文档地址https://nativesupport.dcloud.net.cn/AppDocs/usesdk/ios.html#%E9%85%8D%E7%BD%AE%E5%BA%94%E7%94%A8%E7%89%88%E6%9C%AC%E5%8F%B7 2、配置应用图标 如果没有appicon文件,此时找到 Assets.xcassets 或者 Images.xcassets(看你sdk引入的启动文件中…

Unity中 Xlua使用整理(二)

1.Xlua的配置应用 xLua所有的配置都支持三种方式:打标签;静态列表;动态列表。配置要求: 列表方式均必须是static的字段/属性 列表方式均必须放到一个static类 建议不用标签方式 建议列表方式配置放Editor目录(如果是H…

【计算机网络】课程 实验二 交换机基本配置和VLAN 间路由实现

实验二 交换机基本配置和VLAN 间路由实现 一、实验目的 1.了解交换机的管理方式。 2.掌握通过Console接口对交换机进行配置的方法。 3.掌握交换机命令行各种模式的区别,能够使用各种帮助信息以及命令进行基本的配置。 4&…

【数据结构:前缀树Trie】

目录 前言前缀树介绍和应用一、前缀树的定义前缀树的问题和思考前缀树的映射思想前缀树三大性质 二.前缀树节点结构三. 前缀树接口介绍和实现四个接口API1. insert(String word)2. search(String word)3. startsWith(String pre)4. delete(String word) API实现1. 查询操作sear…

Jenkins触发器--在其他项目执行后构建

前言: jenkins中有多种触发器可用,可以方便的控制构建的启动 这里简单介绍下项目后构建的配置方法 1. 解释: Build after other projects are built Set up a trigger so that when some other projects finish building, a new build is…

Linux(18)——提高命令行运行效率

目录 一、创建和执行 shell 脚本: 1、命令解释器: 2、执行 Bash Shell 脚本: 3、从 shell 脚本提供输出: 二、对特殊字符加引号: 1、反斜杠 (\): 2、单引号 ( &…

软件系统安全逆向分析-混淆对抗

1. 概述 在一般的软件中,我们逆向分析时候通常都不能直接看到软件的明文源代码,或多或少存在着混淆对抗的操作。下面,我会实践操作一个例子从无从下手到攻破目标。 花指令对抗虚函数表RC4 2. 实战-donntyousee 题目载体为具有漏洞的小型软…

计算机网络 (33)传输控制协议TCP概述

一、定义与基本概念 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。它工作在OSI模型的第四层,即传输层,为用户提供可靠的、有序的和无差错的数据传输服务。TCP协议与UDP协议是传输层的两大主要协议,但两者在设计上有明显的不同&…

【从0带做】基于Springboot3+Vue3的高校食堂点餐系统

大家好,我是武哥,最近给大家手撸了一个基于SpringBoot3Vue3的高校食堂点餐系统,可用于毕业设计、课程设计、练手学习,系统全部原创,如有遇到网上抄袭站长的,欢迎联系博主~ 详细介绍 https://www.javaxm.c…

一文说清dockerfile编写

docker用的时间比较久了,关于怎样把jar打成镜像,怎样基于已有mysql镜像添加额外初始化后封装成新的镜像,进行简单的说明。 1.jar封装镜像 from centos # 设置本地为中文,解决中文乱码问题 RUN localedef -i zh_CN -f UTF-8 zh_CN…

基于Python实现的通用小规模搜索引擎

基于Python实现的通用小规模搜索引擎 1.项目简介 1.1背景 《信息内容安全》网络信息内容获取技术课程项目设计 一个至少能支持10个以上网站的爬虫程序,且支持增量式数据采集;并至少采集10000个实际网页;针对采集回来的网页内容, 能够实现网页文本的分…

ssm旅游攻略网站设计+jsp

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 需要源码或者定制看文章最下面或看我的主页 目 录 目 录 III 1 绪论 1 1.1 研究背景 1 1.2 目的和意义 1 1.3 论文结构安排 2 2 相关技术 3 2.1 SSM框架介绍 3 2.2 B/S结构介绍 3 …

算法提高 图形输出

时间限制:C/C 1000MS,其他语言 2000MS 内存限制:C/C 512MB,其他语言 1024MB 难度:困难 分数:100 OI排行榜得分:14(0.1*分数2*难度) 描述 编写一程序,在屏幕上输出如下内容&#xff1…

[程序设计]—代理模式

[程序设计]—代理模式👳 本文章记录学习于——52.面向切面:AOP-场景模拟_哔哩哔哩_bilibili 最近闲来无事,在学习Spring的源码: 后面慢慢更新源码系列blog,希望多多关注🙏🙏 目前已经总结的b…

ue5玩家角色添加武器。切换武器位置,手上武器放到背上。演示一下人体插槽和武器的连接。仅仅演示,实际项目不是这么用的

把第一人称资源包导进来 这就是我们枪的骨骼网格体 我们找到这个骨骼 右手添加插槽 取个名字 因为武器上也有动画,所有武器单独写个蓝图类 新建一个蓝图类 BP_Weapon 把枪的蓝图拖到人的静态网格体下,成为一个部分 选中BP_Weapon的父类套接字…

如何选择适合的证件照制作软件,让您的照片制作更轻松

在当今数字化的时代,制作证件照不再需要专门前往照相馆。选择一款合适的证件照制作软件,您可以在家中轻松完成标准证件照的拍摄与制作。然而,面对市面上琳琅满目的软件,找到最适合您需求的软件并不简单。本文将为您详细介绍选择证…