Torbjorn1997 / readme

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

readme


              Defragmentation Program


 实现思路

1.读入命令行参数,将txt格式的文件名xxxx.txt修改为xxxx-defrag.txt,用文件指针打开这两个文件。其中源文件xxxx.txt 2. 读3072bytes的boot block,super block,inode blocks将其写入输出文件; 3. 遍历inode blocks里面的每个inode,对于每个inode执行如下操作: 1.直接索引 循环10次访问全部节点,当读取到节点值为0时退出。通过count计算对应的数据块的编号并将源文件中数据存储到新文件对应块中。 2.一级索引 通过inode中存储的size大小来确定此次调用中用到的块的个数size,当count=size时退出。对于4个一级索引块,将它们放置在各自的一级索 引得到的数据块前面并将要存储的数据块的编号存到其中,对于一级索引得到的数据块通过直接索引的方法存储。 3.二级索引 得到二级索引块编号后调用一级索引 4.三级索引 得到三级索引块编号后调用二级索引 4.将修改后的inode区域写回文件对应的地方 5.写入剩下的空闲的数据块按顺序标号,后一个数据块中存储前一个数据块的块号,第一个空闲数据块存储-5。 6.修改super block中的空闲块链表的值后将super block写入输出文件相应的位置。

About