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

news2024/10/7 14:30:17

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

代码资源地址

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.coloradmin.cn/o/495995.html

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

相关文章

【Android取证篇】ADB版本更新详细步骤

【Android取证篇】ADB版本更新详细步骤 更新ADB版本&#xff0c;解决无法连接设备问题【蘇小沐】 ADB没有自动更新的命令&#xff0c;我们需要下载新的ADB进行替换更新。 1、ADB查找 打开任务管理器&#xff08;快捷键shiftctrlEsc或WinX&#xff09;&#xff0c;在“详细信…

Arcgis通过矢量建筑面找到POI对应的标准地址

背景 有时候我们需要找到POI对应的标准地址,也许有很多的方法, 比如通过POI的地址数据和标准地址做匹配,用sql语句就能实现; 但是POI数据中也存在很多没有地址数据的,这时候只能通过空间关联来匹配对应的标准地址了,而空间关联也有不一样的方法,一个是通过空间连接,找…

数智化转型再加速,低代码开发助力企业转型

毫无疑问&#xff0c;随着数智化转型的加速&#xff0c;越来越多的企业正在把数智化战略提升到一个全新的高度&#xff0c;转型的进程也正从“浅层次”的数智化走向“深层次”数智化的阶段。 据权威机构数据统计&#xff0c;过去几年全球数字经济同比增长15.6%&#xff0c;采取…

DJ5-5/6 与设备无关的 I/O 软件、用户层的 I/O 软件

目录 5.5 与设备无关的 I/O 软件 5.5.1 与设备无关软件的概念 5.5.2 与设备无关的软件的功能 5.5.3 设备分配 5.5.4 逻辑设备名到物理设备名映射的实现 5.6 用户层的 I/O 软件 5.6.1 系统调用与库函数 5.6.2 假脱机技术 SPOOLing 5.5 与设备无关的 I/O 软件 …

鲲鹏昇腾开发者峰会2023举办

[2023年5月6日 广东东莞]今天&#xff0c;以“创未来 享非凡”为主题的鲲鹏昇腾开发者峰会2023在东莞松山湖举办。 鲲鹏产业生态繁荣&#xff0c;稳步发展&#xff0c;正在成为行业核心场景及科研领域首选&#xff0c;加速推动数字化转型&#xff1b;昇腾产业快速蓬勃向上&…

【大数据之Hadoop】二十五、生产调优-HDFS核心参数

1 NameNode内存生产配置 Hadoop3.x系列的NameNode内存是动态分配的&#xff0c;可以用jmap -heap 进程号 查看分配的内存。 在hadoop102中NameNode和DataNode的内存都是自动分配的&#xff0c;且相等。 根据经验&#xff1a; NameNode最小值为1G&#xff0c;每增加1百万个物理…

【JavaEE初阶】多线程带来的风险~线程安全

目录 &#x1f31f;观察线程不安全的现象 &#x1f31f;线程不安全的原因 &#x1f308;1、多个线程修改了同一个共享变量 &#x1f308;2、线程是抢占式执行的&#xff0c;CPU的调度是随机的 &#x1f308;3、指令执行时没有保证原子性 &#x1f308;4、多线程环境中内…

当无触控板和鼠标的情况下,如何开启触控板

背景&#xff1a;一次出行匆忙&#xff0c;忘记带鼠标&#xff0c;周围也无可用工具&#xff0c;主要是触控板当时也被我关闭了&#xff0c;下面讲述一下我是如何解决在没有鼠标的情况下开启触控板的。 首先我们开启电脑后&#xff0c; 存在两种思路去开启触控板 第一种方案…

加拿大访问学者签证材料清单

加拿大在教育、政府透明度、社会自由度以及生活品质等方面在国际上排名名列前茅&#xff0c;出于环境、社会氛围等因素&#xff0c;不少学者将目光聚焦于这个北美的发达国家。加拿大的访问学者签证属于工作签证&#xff0c;过去只要有邀请函就可以办理&#xff0c;但是自去年2月…

Python:Python底层原理:Python的整数是如何实现的

Python整数在底层存储方式 1. Python整数在底层对应的结构体 PyLongObject2.整数是怎么存储的2.1 整数0存储2.2 整数12.3 整数-12.4. 2**30 -12.5 . 2**302.6 . ob_digit[a, b, c] 对应整数计算 计算整数所占内存大小总结 Python的底层是C/C &#xff0c;但是 C/C 能表示的整数…

Linux挂载新磁盘到根目录

添加磁盘到需要挂载的机器上 lsblk查看硬盘挂载情况&#xff0c;sdb,sdc为我新挂载的磁盘 fdisk -l查看挂载之前的分区情况 为新硬盘创建分区 fdisk /dev/sdb 终端会提示&#xff1a; Command &#xff08;m for help&#xff09;&#xff1a;输入&#xff1a;n 依次输入p…

【HTTPS】

HTTP明文传输问题 窃听风险&#xff0c;比如通信链路上可以获取通信内容&#xff0c;用户号容易没。篡改风险&#xff0c;比如强制植入垃圾广告&#xff0c;视觉污染&#xff0c;用户眼容易瞎。冒充风险&#xff0c;比如冒充淘宝网站&#xff0c;用户钱容易没。 TLS协议解决H…

【雅可比左乘右乘】

常见雅可比左乘&#xff08;以自变量R为例子&#xff0c;围绕旋转点p的旋转点的左扰动雅可比&#xff09;&#xff1a; 旋转点的右扰动雅可比&#xff08;右乘&#xff09;&#xff1a; 左雅可比和右雅可比之间的区别在于它们各自描述了不同的变换方向。左雅可比将输入空…

硬件-6-基站和移动通信系统的演进

1G、2G、3G、4G、5G 移动通信技术发展简史 1 移动通信系统简介 移动通信系统从第一代移动通信系统(1G)开始逐渐发展&#xff0c;目前已经发展到第四代移动通信系统(4G)&#xff0c;第五代移动通信系统(5G)也已经开始标准化&#xff0c;预计2020年商用&#xff0c;6G预计2030年…

Linux网络架构: XDP, iptables/netfilter和iproute2/tc/ip/Qdiscs

本文目录 1、架构框图2、网络架构分成三大块3、网络架构-----对应的配置工具-----对应的原理与概念 说到Linux的网络架构&#xff0c;就离不开谈。。。这些东西。这几个概念很容易混淆起来&#xff0c;但如果仔细去看&#xff0c;就会发现这个Linux的网络架构的设计其实是非常简…

10:00面试,10:04就出来了 ,问的实在是太...

从外包出来&#xff0c;没想到竟然死在了另一家厂子 自从加入这家公司&#xff0c;每天都在加班&#xff0c;钱倒是给的不少&#xff0c;所以我也就忍了。没想到12月一纸通知&#xff0c;所有人都不许加班&#xff0c;薪资直降30%&#xff0c;顿时有吃不起饭的赶脚。 好在有个…

建筑专业可以转行学云计算吗?

当然可行。 在过去的几年中&#xff0c;我们已经帮助很多建筑土木工程专业的同学转行学习云计算技术&#xff0c;尤其是在建筑信息化编程方向。近年来&#xff0c;云计算行业持续发展&#xff0c;涉及到众多领域&#xff0c;如云数据中心、云安全、云存储、云计算机服务等。云…

管好【SD-WEBUI】中大量的模型:名称+预览图+备注

文章目录 &#xff08;零&#xff09;前言&#xff08;一&#xff09;模型&#xff08;1.1&#xff09;模型名称&#xff08;文件名&#xff09;&#xff08;1.2&#xff09;模型缩略图&#xff08;1.3&#xff09;模型备注文字&#xff08;1.4&#xff09;模型详细信息 &#…

国民技术N32G430开发笔记(18)- I2C1 从机收发数据

I2C1 从机收发数据 1、将PB6 PB7设置为i2c从机&#xff0c;跟android板卡通讯。 2、Android发送 写命令&#xff1a; 0x05 0x02 0x00 0x00 checksum n32将收到的命令打印出来 读版本命令&#xff1a; 0x01 0x02 0x00 0x00 checksum n32将app_version返回电视端 3、i2c从机配置…

MTK6765安卓智能模组5G核心板联发科MTK方案主板开发板

联发科MTK6765这是一款12纳米八核A53处理器&#xff0c;最高运行速度可达2.3GHz。它使用Android 9.0操作系统&#xff0c;配备2G16G内存&#xff0c;也支持其他选项1G/3G/4G8G/32G/64G。 此外&#xff0c;它支持全球主流频段&#xff0c;包括默认的国内频段以及2G GSM、2G/3G E…