实验四 文件系统原理与模拟实现

news/2024/12/2 19:02:36/

实验四 文件系统原理与模拟实现

代码资源地址

Java实现的混合索引和成组链接法算法资源-CSDN文库

实验目的

了解操作系统中文件系统的结构和管理过程,掌握经典的算法:混合索引与成组链接法等方法。

实验内容:

编程模拟实现混合索引和成组链接法算法;

实验步骤:

        1.模拟混合索引的原理;

        假设每个盘块16字节大小,每个盘块号占2字节:

        设计支持混合索引算法的索引节点的数据结构;编程模拟实现混合索引算法。

        测试:输入一个文件的长度,给出模拟分配占用的磁盘块的情况;输入一个需要访问的地址,计算该地址所在的盘块号。

        2.模拟成组链接法的原理;

        设系统具有7个可用磁盘块,每组3块。

        编程模拟实现成组链接法。输入请求的磁盘块数,模拟成组链接分配;输入回收的磁盘块号,模拟成组链接回收。

        测试:输入请求的磁盘块数,给出分配后的链接情况。输入回收的磁盘块号,给出回收后的链接情况。

实验过程:

下面是具体的实验过程:

  1. 混合索引法

(1)前10个指针指向可以直接访问的磁盘块。剩下3个指针指向间接块,即不包含数据的块,分别指向:一级间接块、二级间接块、三级间接块。

图1 混合所引法分配图

        2.成组链接法

(1)分组:文件区中的所有空闲盘块被分成若干个组,如将每3个盘块作为一组。

(2)成链:由各组的第一个盘块链成一条链。将每一组含有的盘块总数N和该组所有的盘块号记入其前一组的第一个盘块中。

(3) 空闲盘块号栈:存放当前可用的一组空闲盘块的盘块号(最多为100个),以及栈中尚有的空闲盘块号数N,N兼作栈顶指针用。

图2 成组链接图示

3.混合索引法代码及测试

(1)代码目录结构图如图3所示。SuoYin.java为实现混合索引法的代码。

图3 混合索引代码结构目录

 (2)混合索引法代码。

Java实现的混合索引和成组链接法算法资源-CSDN文库

(3)混合索引法测试。

1)直接索引测试。30/16=1…14,所以盘块号=1,偏移量=14。

图4 直接索引

 

2)一级索引测试。170/16=10…10,10>9(块号从0开始),所以启用了一级索引,位于一级索引的第0块,偏移量=10。

图5 一级索引

 3)二级索引测试。1000/16=62…8,10+8<62<10+8+64启用了二级索引,位于二级索引的第44块,偏移量=8。

4)三级索引测试。1400/16=87…8,10+8+64<87<10+8+64+512启用了三级索引,位于三级索引的第5块,偏移量=8。

4.成组链接法代码及测试

(1)代码目录结构图如图8所示。GroupsLinking为实现成组链接法的代码。

图8 成组链接法代码结构目录

(2)GroupsLinking代码如下。可以实现成组链接法的分配和回收操作。

 Java实现的混合索引和成组链接法算法资源-CSDN文库

(3)成组链接法的测试截图。

1)分配操作

图9 初始化效果图

 

图10 分配1个盘块

图11 第1组盘块分配完毕

图12 全部盘块分配完毕

2)回收操作

图13 回收一个盘块

图14 回收1组盘块

 

图15 退出系统

经过验证可知结果正确。


http://www.ppmy.cn/news/63555.html

相关文章

基于MATLAB的无人机遥感数据预处理与农林植被性状估算

目录 第一章 认识主被动无人机遥感数据 第二章 预处理无人机遥感数据 第三章 定量估算农林植被关键性状 第四章 期刊论文插图精细制作与Appdesigner应用开发 更多模型 在新一轮互联网信息技术大发展的现今&#xff0c;无人机、大数据、人工智能、物联网等新兴技术在各行各…

metaRTC6.0 whip/whep编程指南

概述 WHIP/WHEP都是基于 HTTP 的协议并且是IETF国际标准&#xff0c;国内外一些主流的开源webRTC SFU都开始支持WHIP/WhEP协议。 WHIP: WebRTC-HTTP ingestion protocol (WHIP) WHEP: WebRTC-HTTP egress protocol (WHEP) 下载源码 GitHub - metartc/metaRTC: A cross-pla…

SSM整合详细教学(下)

SSM整合详细教学&#xff08;下&#xff09; 五、SSM整合页面开发1 准备工作2 列表查询功能3 添加功能4 修改功能5 删除功能 六、拦截器1 拦截器简介问题导入1.1 拦截器概念和作用1.2 拦截器和过滤器的区别 2 入门案例问题导入2.1 拦截器代码实现【第一步】定义拦截器【第二步】…

MySQL 索引、事务与存储引擎

----------------------MySQL 索引-------------------------------- 1&#xff0e;索引的概念 ●索引是一个排序的列表&#xff0c;在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址&#xff08;类似于C语言的链表通过指针指向数据记录的内存地址&#xff09;。…

第8章 虚拟主机

第8章 虚拟主机 虚拟主机&#xff0c;就是把一台物理服务器划分成多个“虚拟”的服务器&#xff0c;这样我们的一台物理服务器就可以当做多个服务器来使用&#xff0c;从而可以配置多个网站。 Nginx提供虚拟主机的功能&#xff0c;就是为了让我们不需要安装多个Nginx&#xf…

在CentOS上安装Jenkins并配置Docker

文章目录 步骤1 - 安装Java 11步骤2 - 安装Jenkins步骤3 - 安装Docker步骤4 - 配置Docker Cloud步骤 5 - 验证步骤 6 - 可能会遇到的问题 在本教程中&#xff0c;我们将展示如何在CentOS上安装Jenkins和Docker&#xff0c;并将它们配置在同一台机器上&#xff0c;使Jenkins能够…

cmd@快捷键方式@静默执行命令@修复桌面空白快捷方式图标

文章目录 ref前言快捷方式执行命令行或打开文件eg:直接打开某个文件 创建快捷方式eg:快捷方式运行命令 修复快捷方式图标空白问题逐个修复批量修复一次性操作:逐步操作 执行效果第三方工具修复 ref How can I execute a Windows command line in background? - Super Userstb…

MybatisPlus是否防止SQL注入?

问 如果我希望使用mybatisplus同时也进行防SQL注入操作&#xff0c;应该怎么处理&#xff1f; 答 如果你想在使用 MyBatis-Plus 进行数据库操作的同时也进行防 SQL 注入处理&#xff0c;可以采用以下两种方式&#xff1a; 使用 #{} 占位符&#xff1a;在 QueryWrapper 或 Up…