Linux高速缓存详解(一)
个人学习总结,不保证正确性。。。
在Linux高速缓存概述中介绍了Linux 0.11中的高速缓存的基础结构,这一部分将详细分析Linux高速缓存部分的相关函数。
[数据结构]
这里介绍下另外和高速缓存相关的数据结构,高速缓存散列表、空闲链表指针free_list以及等待在缓存块上的指针buffer_wait。它们定义分别如下:(代码来源buffer.c)
struct buffer_head
* hash_table[NR_HASH];
static struct buffer_head
* free_list;
static struct task_struct
* buffer_wait = NULL;
struct buffer_head * start_buffer
= (struct buffer_head *) &end;
hash_table就是之前介绍过的缓存散列表,散列函数定义如下
#define _hashfn(dev,block)
(((unsigned )(dev^block))%NR_HASH)
#define hash(dev,block)
hash_table[_hashfn(dev,block)]
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。