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

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

代码资源地址

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

实验目的

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

实验内容:

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

实验步骤:

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

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

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

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

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

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

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

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

实验过程:

下面是具体的实验过程:

  1. 混合索引法

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

实验四 文件系统原理与模拟实现_第1张图片

图1 混合所引法分配图

        2.成组链接法

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

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

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

实验四 文件系统原理与模拟实现_第2张图片

图2 成组链接图示

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

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

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

 (2)混合索引法代码。

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

(3)混合索引法测试。

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

实验四 文件系统原理与模拟实现_第3张图片

图4 直接索引

 

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

实验四 文件系统原理与模拟实现_第4张图片

图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)分配操作

实验四 文件系统原理与模拟实现_第5张图片

图9 初始化效果图

 

实验四 文件系统原理与模拟实现_第6张图片

图10 分配1个盘块

实验四 文件系统原理与模拟实现_第7张图片

图11 第1组盘块分配完毕

图12 全部盘块分配完毕

2)回收操作

实验四 文件系统原理与模拟实现_第8张图片

图13 回收一个盘块

实验四 文件系统原理与模拟实现_第9张图片

图14 回收1组盘块

实验四 文件系统原理与模拟实现_第10张图片

 

图15 退出系统

经过验证可知结果正确。

你可能感兴趣的:(操作系统,数据结构,操作系统,成组链接法,混合索引法)