当前位置: 首页 > news >正文

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

《操作系统》书上说:文件系统是块设备,一般是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+树的偏大、偏小搜索。

相关文章:

  • 961题库 北航计算机 组成原理选择题 附答案 选择题形式
  • 将 py 文件编译成 pyd 文件
  • WHAT - Typescript 中 structural-type-system 结构类型系统
  • Harmony os Next——Ble蓝牙模块
  • Linux 自动化升级Jar程序,指定Jar程序版本进行部署脚本
  • 【银角大王——Django课程——Ajax请求】
  • FJSP:波搜索算法(WSA)求解柔性作业车间调度问题(FJSP),提供MATLAB代码
  • 压测工具sysbench
  • 性能监控计算——封装带性能计算并上报的npm包(第三章)
  • 【TIPs】 Visual Stadio 2019 中本地误使用“git的重置 - 删除更改 -- hard”后,如何恢复?
  • 初识SDN
  • python-数据可视化(总)
  • Qt for Android
  • 代码随想录--哈希表--两数之和
  • 关于模拟信道和数字信道根本区别的探讨
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Angular数据绑定机制
  • CEF与代理
  • co.js - 让异步代码同步化
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • ECMAScript入门(七)--Module语法
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • ES6语法详解(一)
  • github指令
  • input的行数自动增减
  • JavaScript 奇技淫巧
  • Javascript基础之Array数组API
  • MQ框架的比较
  • PHP的Ev教程三(Periodic watcher)
  • Python连接Oracle
  • React 快速上手 - 07 前端路由 react-router
  • STAR法则
  • vagrant 添加本地 box 安装 laravel homestead
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 关于Flux,Vuex,Redux的思考
  • 简析gRPC client 连接管理
  • 如何编写一个可升级的智能合约
  • 实现菜单下拉伸展折叠效果demo
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 如何用纯 CSS 创作一个货车 loader
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​Redis 实现计数器和限速器的
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • (1)(1.9) MSP (version 4.2)
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (k8s)kubernetes集群基于Containerd部署
  • (poj1.2.1)1970(筛选法模拟)
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (六)vue-router+UI组件库