[原创] 按inode排序

chenbingjy   2016-9-8 09:56 楼主
在UNIX中,inode(索引节点)是包含和文件唯一相关的元信息的结构。一个文件
可能占用了多个物理块,但每个文件只有一个inode,其中包含了文件大小,权限、
所有者等信息。
可以通过stat()系统调用来获得inode序号。由于inode和每次请求所涉及的文件关联,
可以按inode序号升序方式对每个请求进行排序。
以下简单的示例程序可以输出指定文件的inode编号:
1.jpg 2.jpg
编译:
3.jpg
运行:
4.jpg
按inode编号排序有如下有点:inode编号容易获取,容易排序,和文件的物理
布局很近似。主要的缺点是碎片会降低这种近似性,而且近似性只是估算,在
非UNIX系统上也不够准确。无论如何,使用inode进行排序都是在用户空间I/O
请求调度中最常用的方法。
为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

回复评论 (1)

按物理块排序:
设计自己的电梯算法,最好的方式是使用物理块进行排序。逻辑块是文件系统
最小的分配单元,每个文件都被分割成若干逻辑块。逻辑块的大小和文件系统
有关,每个逻辑块对应一个物理块。因此,我们可以通过确定文件的逻辑块数,
确定它们对应的物理块,并在此基数上进行排序。
以下示例程序对通过命令行传递的文件进行相关操作,获取逻辑块号:
1.jpg 2.jpg 3.jpg 4.jpg
编译:
5.jpg
运行:
6.jpg
为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
点赞  2016-9-8 10:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复