发布时间:2013-08-04 18:01:24
在看JBD代码的过程中自问自答了很多问题,多少次自以为吃透了某个问题,但是,后面被推翻,又不停的看代码找答案,其实看代码的过程就是领悟作者真实想法的过程,只有对每句代码都吃透才算是理解作者的真实意图.JBD的代码涉及到文件系统,虚拟内存,脏数据回写等多个子系统,比较复杂,但是其设计巧妙,逻辑严谨,阅读领悟的过程也是.........【阅读全文】
发布时间:2013-08-04 17:55:20
Q:块预留解决的核心问题?A:ext2块预留解决的核心问题是同一个目录下多个文件同时增长时交错的分配磁盘块,导致文件的磁盘块在磁盘上是不连续的(同一个目录下的两个文件会使用相同的块组),虽然在ext2_find_goal()中ext2_find_goal() ext2_find_near() colour = (current->pid % 16) * (EXT2_BLOCKS_PER.........【阅读全文】
发布时间:2013-08-04 17:38:01
Q:采用pdflush方式回写脏页的不足?A:pdflush方式回写脏页最大的问题是pdflush线程会饥饿,导致超时的脏页无法及时的回写.采用pdflush方式回写时,周期性回写(wb_kupdate)和后台回写(background_write)都必须设置wbc->nonblocking=1,因为pdflush是全局的,它负责所有块设备脏数据的回写,如果wbc->nonblocking=0(可以阻塞)且.........【阅读全文】
发布时间:2013-08-04 17:10:50
Q:sys_write()缓冲写文件时,为什么page都会先转换为buffer page?A:文件系统都是以块(buffer_head)为基本单位来进行磁盘操作的,将page转化为buffer page后,page对应的磁盘块都有相应的buffer_head,每个buffer_head可以存放此buffer_head是否映射到磁盘,对应的磁盘块号等映射信息,将脏页回写到磁盘的过程中,有了这些信息就.........【阅读全文】