当前位置: 技术问答>linux和unix
用bitmap实现磁盘的读写监控
来源: 互联网 发布时间:2017-01-19
本文导语: 需要用C创建一个bitmap来实现对整个磁盘的读写监控。如果对一个磁盘块进行的操作是“写”操作,就在相应位置1,如果是“读”操作,则忽略。请问具体的数据结构怎样实现,如何在记录下“写”操作的同时,记录...
需要用C创建一个bitmap来实现对整个磁盘的读写监控。如果对一个磁盘块进行的操作是“写”操作,就在相应位置1,如果是“读”操作,则忽略。请问具体的数据结构怎样实现,如何在记录下“写”操作的同时,记录下相应磁盘块的位置。谢谢了。期待中……
|
#define SEC_MAX
#define BIT_MAX
struct sec_bitmap
{
unsigned int bit[BIT_MAX/32];
unsigned int sec[SEC_MAX];
};
index=
mysec_bitmap[s]->bit[index]=1;
mysec_bitmap[s]->sec[sector_number%SEC_MAX]=sector_number;
#define BIT_MAX
struct sec_bitmap
{
unsigned int bit[BIT_MAX/32];
unsigned int sec[SEC_MAX];
};
index=
mysec_bitmap[s]->bit[index]=1;
mysec_bitmap[s]->sec[sector_number%SEC_MAX]=sector_number;
|
2G需要500000个4k的块。一个int可以表示32个块。
可以
#defien MAX_BIT 500000/32
unsigned int bitmap[MAX_BIT]
就下来自己用就是了啊,还不是知道你想问的是什么。
可以
#defien MAX_BIT 500000/32
unsigned int bitmap[MAX_BIT]
就下来自己用就是了啊,还不是知道你想问的是什么。
|
Ext2 文件系统的硬盘布局:http://www.ibm.com/developerworks/cn/linux/filesystem/ext2/
从文件 I/O 看 Linux 的虚拟文件系统:http://www.ibm.com/developerworks/cn/linux/l-cn-vfs/
解析 Linux 中的 VFS 文件系统机制:http://www.ibm.com/developerworks/cn/linux/l-vfs/
Ext3 和 ext4 文件系统在线调整大小内幕:http://www.ibm.com/developerworks/cn/linux/l-cn-ext4resize/
你可以看看上面这些分析,主要针对核心的文件系统 ext2/ext3。
至于bit掩码和位置记录都比较简单,其中最简单的方式就是采用静态数组来实现
struct blk_log {
unsigned int bits[BLK_MAX / sizeof(unsigned int)]; // 记录读写掩码,为1时表明该数据块需要同步
unsigned int blks[BLK_MAX]; // 记录位置,可以是逻辑磁盘块到物理磁盘块的映射
};
如果磁盘块完全连续,那么貌似位置记录可以省略。只要知道起始磁盘块位置,就可以计算出当前位置吧...
从文件 I/O 看 Linux 的虚拟文件系统:http://www.ibm.com/developerworks/cn/linux/l-cn-vfs/
解析 Linux 中的 VFS 文件系统机制:http://www.ibm.com/developerworks/cn/linux/l-vfs/
Ext3 和 ext4 文件系统在线调整大小内幕:http://www.ibm.com/developerworks/cn/linux/l-cn-ext4resize/
你可以看看上面这些分析,主要针对核心的文件系统 ext2/ext3。
至于bit掩码和位置记录都比较简单,其中最简单的方式就是采用静态数组来实现
struct blk_log {
unsigned int bits[BLK_MAX / sizeof(unsigned int)]; // 记录读写掩码,为1时表明该数据块需要同步
unsigned int blks[BLK_MAX]; // 记录位置,可以是逻辑磁盘块到物理磁盘块的映射
};
如果磁盘块完全连续,那么貌似位置记录可以省略。只要知道起始磁盘块位置,就可以计算出当前位置吧...
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。