以字节为单位管理文件系统

《操作系统》书上说:文件系统是块设备,一般是4KB一块。本文尝试以字节为单位管理文件系统。

关键是空闲空间的管理。在传统的文件系统中,用的是bitmap,在新的方法中,用的是“双B+树”。

空闲空间用一张两列多行的表来描述,每行代表一个空闲空间,A列表示从哪开始,B列表示有多长。用双B+树分别对A列和B列进行索引,但这两个B+树又略有不同,见下文。

创建一个长100字节的文件,要求在B列找到略大于100的一块空闲空间。略大于指的是:在大于等于100的数字里,最接近100的那一个。这叫做B+树的偏大搜索。

删除位于2000的一段文件,需要在A列运行B+树的偏小搜索。具体方法是:找到小于2000的数字里,最接近2000的那一个,例如是1950,查看它的B列,如果正好是50,则说明可以合并空闲空间;如果小于50,说明不可合并;如果大于50,说明出错了。

说一些自相矛盾的话,以字节为单位管理文件系统,不是必须的。中、大文件以块为单位管理,小文件放在注册表里,这套方案就不错。小文件数量虽多,但总体积似乎也就几百MB。

总结:
用从哪开始的,几个字节,来描述空闲空间。
用双B+树索引A列和B列。
创建和删除文件时,用到了B+树的偏大、偏小搜索。

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

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

相关文章

冥想第一千一百七十八天

1.周末,早上先骑着电车到绿谷公园拿了姐给的精油,40分钟到家。 2.早上带着媳妇吃了饭,等丈母娘和小侄子。一起去荥泽水乡特别的推荐。感受特别好玩。 3.晚上带着丈母娘和小侄子吃了饭,给送到中原福塔。回来都都12点了。 4.累的&am…

Windows键盘选定文本快捷键

快捷键作用Shift ↑向上选定一行Shift ↓向下选定一行Shift ←向左选定1个字符Shift →向右选定1个字符Shift Ctrl ↑选定内容扩展至段落首Shift Crtl ↓选定内容扩展至段落尾Shift Crtl ←选定内容扩展至单词首Shift Crtl →选定内容扩展至单词尾Shift Home选定内容扩…

JDK安装目录

1、bin 该路径下存放了各种工具命令,其中比较重要的有:javac和java javac:jdk提供的编译工具,我们可以通过这个工具,把当前路径下的 .java 文件编译成 .class 字节码文件java:jdk提供的一个工具&#xff0…

计算机视觉与模式识别实验1-4 图像的傅立叶变换

文章目录 🧡🧡实验流程🧡🧡1. 傅立叶变换1.a 绘制一个二值图像矩阵,并将其傅立叶函数可视化。1.b 利用傅立叶变换分析两幅图像的相关性,定位图像特征。读入图像‘text.png,抽取其中的字母‘a’ 2. 离散余弦…

2024年5月2日 Go生态洞察:Go 1.22中的安全随机性

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 专栏链接: 🔗 精选专栏:…

JavaEE IO流(1)

1.什么是IO流 (1)input输入 Output输出 这两个的首字母就是IO的组成 (2)比如你的电脑可以通过网络上传文件和下载文件 这个上传文件就是Output 这个下载翁建就是input (3)这个输入和输出的标准是以CPU为参照物为基准的 其中通…

Python编程基础1

Python特点: 高级:有高级的数据结构,缩短开发时间与代码量。 面向对象:为数据和逻辑相分离的结构化和过程化编程添加了新的活力。 可升级:提供了基础的开发模板,可以在它上面开发软件,实现代码的…

问答机器人

怎样做自己的问答机器人? 根据我们提供的数据分析出问题的答案,我们并不需要训练自己的模型 微调模型 finetune,将语言模型调成另外的语言模型,更适合不同类型数据,运用finetune方法将模型变化 知识库模型 embedd…

关系型数据库面经(数据库系统概论)

下面是我在面试中被问到的关系型数据库的问题并且我回答得不是很好的题目,写个博客记录一下。 下面用于实现数据存储安全性的SQL语句是? 实现数据存储安全性通常涉及到权限管理和加密等手段。在SQL中,用于控制数据访问权限的语句主要是GRAN…

【最新鸿蒙应用开发】——什么是应用开发模型?Stage模型

在应用程序开发时通常需要使用应用模型来提供必备的组件和运行机制,有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。接下来谈谈鸿蒙应用开发当中的两种模型: Stage模型: HarmonyOS …

Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子:人工智能消防应用

青鸟消防股份有限公司成立于2001年6月,于2019年8月在深圳证券交易所挂牌上市,成为中国消防报警行业首家登陆A股的企业。公司始终聚焦于消防安全与物联网领域,主营业务为“一站式”消防安全系统产品的研发、生产和销售。公司产品已覆盖了火灾报…

USB - ACK、NAK和STALL的含义

在 USB(通用串行总线)通信中,术语 ACK、NAK 和 STALL 指的是用于控制数据流和错误处理的握手数据包。下面是对每个术语的详细解释: ACK(确认): ACK 数据包由接收方发送给发送方,以表…

【NOIP提高组】方格取数

【NOIP提高组】方格取数 💖The Begin💖点点关注,收藏不迷路💖 设有N*N的方格图,我们将其中的某些方格填入正整数, 而其他的方格中放入0。 某人从图得左上角出发,可以向下走,也可以向…

vue2 bug求助!!!(未解决,大概是浏览器缓存的问题或者是路由的问题)

我的vue2项目出现了一个超级恶心的bug 具体流程: 页面a点击a标签->到页面b->页面b用户退出刷新页面->点击浏览器的返回按钮返回上一页 返回页面后页面没有刷新导致用户名还显示这 项目中没有用keep-alive缓存 也在设置了key 尝试了window.addEventListe…

idea实用快捷键(持续更新...)

文章目录 1、快速输入try/catch/finally2、选中多个光标3、实现接口4、方法参数提示5、查看某个类的子类6、弹出显示查找内容的搜索框 1、快速输入try/catch/finally CtrlAltT 2、选中多个光标 ShiftAlt单机多选 End可以全部到行尾,Home则可以全部回到行首 3、实现接…

存储过程定义及优势

存储过程 是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名字和参数(如果有)来调用并执行它。存储过程可以在SQL Server、Oracle、MySQL等关系型数据库中创建和使用。 存储过程的定义&…

评价一个AI模型“好不好”“有没有发展”,首先就躲不掉“开源”和“闭源”两条发展路径。对于这两条路径,你更看好哪一种呢?

评价一个AI模型的发展潜力和好坏时,确实需要考虑它是走“开源”还是“闭源”的发展路径。两者各有优缺点,具体选择哪一种路径更好,要根据具体情况和目标来决定。 开源路径 优点: 透明性和安全性: 开源代码允许任何人…

Python深度学习基于Tensorflow(14)人脸检测和识别实例

文章目录 人脸检测研究现状传统的人脸检测算法深度学习人脸检测算法 人脸识别实战人脸检测人脸对齐人脸标准化人脸表示人脸验证 参考资料 人脸检测研究现状 这里直接引用了吴伟硕士毕业论文 随着计算能力的飞速提升和创新性的传感、分析、渲染设备和技术的广泛应用&#xff0c…

【TB作品】msp430g2553单片机,流速,流量,检测与显示

功能 采用P1.4作为ADC输入通道,采集流量,显示到oled,并串口发送。 硬件 //OLED // SCL接P2^0 // SDA接P2^1 //vcc接VCC //GND接GND //串口 //P1.1 RXD, P1.2TXD //P1.1接模块的TX P1.2接模块的RX 反着接 //ADC通道 //采用P1.4作为ADC输…

LoRA低秩自适应微调技术原理及实践

大型语言模型的低秩自适应 (LoRA) 用于解决微调大型语言模型 (LLM) 的挑战。GPT 和 Llama 等模型拥有数十亿个参数,通常对于特定任务或领域进行微调的成本过高。LoRA 保留了预训练的模型权重,并在每个模型块中加入了可训练层。这显著减少了需要微调的参数…