- 博客(7)
- 收藏
- 关注
原创 PNFS协议中stateid分析
1.“owners”通常对应着客户端内部的进程2.当服务器授予了一个任意类型的锁时(包括open、字节粒度锁、delegation和layout),会返回一个唯一的stateid,这个stateid则代表了属于同一个文件、同一种类型、并且共享相同的所有权特性的的一个锁集合(经
2011-09-29 16:11:13 1531
原创 address_space 与 radix tree
address_space结构体,是页高速缓存(page cache)的核心数据结构。在很多时候,内核在读写磁盘时都引用页高速缓存,新页被追加到页高速缓存以满足用户态进程的读请求。如果页不在高速缓存中,新页就被追加到高速缓存。这样作的目的就是为了更快的效率,比如有一些页,经常被访
2011-09-28 15:54:47 932
原创 2.6内核中likely()与unlikely()解析
在 2.6 内核中,随处可以见到 likely() 和 unlikely() 的身影,那么为什么要用它们?它们之间有什么区别? 首先要明确: if(likely(value)) 等价于 if(value) if(unlikely(value)) 也等价于 if(
2011-09-27 15:44:01 382
原创 linux内核同步的一些基本理解
进程调度的一些基本事实:1.调度是优先级和时间片共同决定的2.I/O消耗型的优先级较高,时间片较长,计算消耗型反之。3.当进程阻塞或者主动schedule()或者被抢占时候,则发生调度4.当时间片耗尽时,进程将被挂到另一个队列中。5.用户抢占发生在系统调用返回
2011-09-27 15:05:15 464
原创 PNFS中update_layout()情节分析
不知道情景分析的格式怎样写比较容易读,为防止自己忘记,直接把代码贴过来,加注释(当然是自己的理解,可能有错误,欢迎拍砖)int pnfs_update_layout(struct inode *ino, struct nfs_ope
2011-09-26 19:59:10 943
原创 PNFS代码阅读笔记(客户端钩子函数注册过程)
客户端模块初始函数static int __init init_nfs_fs(void)->#ifdef CONFIG_PNFS err = pnfs_initialize();在 pnfs_initialize(); pnfs_v4_clientop
2011-09-23 17:16:21 672
原创 ext3日志掠影
草草浏了一遍JBD源代码分析,对日志机制的原理和实现有了些粗略的印象,一些细节问题不想深究了,只有在动手实践之后才能有更深入的理解,这是不可取代的途径。为了是这一上午和一个晚上的工作留下些许印象,记录一些片段士的理解。1.日志的实现是加在在文件系统的各种操作流程中的,比如
2011-09-21 11:07:09 1241
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人