又去翻了翻书,
通用缓存 :cache_size
专用缓存 :cache_cache
两者用途不同,顶层的数据结构也不同(前者是一个数组,后者是一个队列)
两者的创建方式不同
但是缓冲区的分配函数相同?(kmalloc和一般的专用缓存分配都是调用的kmem_cache_alloc())
即kmem_cache_alloc()函数的第一个参数决定了是在通用缓存里分配还是在专用缓存里分配?
如果是这样的话,我是不是可以理解为:
1 通用队列,专用队列是完全没什么关系的两套东西,只不过采用的技术类似(导致某些函数的调用相同?)
2 系统运行过程中,专用的缓冲区自己管理了一部分地址空间,剩下的地址空间才归kmalloc()分配,两者在逻辑上物理上都是隔离的?
还不明白的是
1"先有通用后有专用"是仅仅指创建的先后顺序吗?
2"生命周期不同"如何理解?
3"地位不同"如何理解?