首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xv6操作系统-三重间接的实现

xv6操作系统-三重间接的实现
EN

Stack Overflow用户
提问于 2015-06-19 08:30:13
回答 1查看 435关注 0票数 1

xv6 mkfs.c文件声明变量:

代码语言:javascript
复制
int nblocks = 985;
int nlog = LOGSIZE;
int ninodes = 200;
int size = 1024;

该声明应该与有12个直接块和1个间接块的inode一起正常工作,我不理解的是,为什么nblock被定义为985?一个inode中的块数为140 (间接+ 12直接为128),因此我不完全理解985来自何处以及1024的大小。

如果我能理解这部分的话,我想我可以改变变量来支持三重间接。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-05 13:39:30

inode在磁盘(sizeof(struct inode))上只占32个字节。只有当写入inode时,它才开始占用磁盘上更多的空间(块)。

注意这段代码:

代码语言:javascript
复制
bitblocks = size/(512*8) + 1;
usedblocks = ninodes / IPB + 3 + bitblocks;
...
assert(nblocks + usedblocks + nlog == size);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30933526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档