0
点赞
收藏
分享

微信扫一扫

《操作系统真象还原》第八章 位图的数据结构与操作

陌岛 2022-04-29 阅读 48
数据结构

1,概念介绍
用途就是为了管理内存页,一比特对应一页,即bit对应4KB。因为管理内存的位图本身也需要空间。所以我们要尽量压缩管理代价。

一个简单的运算:1K的位图可以管理多大的内存空间呢?

1Kb x 8bit x 4KB = 32Mb。所以1k的位图可以管理32M的内存空间。

2,数据结构

struct bitmap {
   uint32_t btmp_bytes_len;//所占用的空间长度,单位:字节
   uint8_t* bits;
};

3,操作及实现思路

void bitmap_init(struct bitmap* btmp);
bool bitmap_scan_test(struct bitmap* btmp, uint32_t bit_idx);
int bitmap_scan(struct bitmap* btmp, uint32_t cnt);
void bitmap_set(struct bitmap* btmp, uint32_t bit_idx, int8_t value);

1,位图初始化

2,判断某个位是否为1,若为1则返回true,否则返回false

3,在位图中申请连续个cnt个位,成功就返回起始位下标,失败返回-1

4,将位图bit_idx位设置为value

举报

相关推荐

0 条评论