通用寄存器 发表于 2006-02-23 18:29

[请教]关于进程描述符在内存中的位置问题?

ULK2中P84(中文版)讲:
(内核)把进程描述符放在动态内存中,而不是放在永久分配给内核的内存区.
下面有个译注:这里的内存区是指线形地址空间中的一个区域,分配给内核的线形地址空间在3G以上.

问题:
永久分配给内核的内存区是指虚存空间在3G到3G+896M的空间吗?这里的动态内存是指3G+896M到4G的空间吗?

又:如果进程描述符在内核空间中,那么同一页上的图示中进程描述符的位置0x015fa000应该是该描述符在物理空间上的位置吧?

小弟是初学者,周围也没有人一起研究探讨,只能求助给位大虾了,请给位多多关照!谢谢!

albcamus 发表于 2006-02-23 18:51

>>永久分配给内核的内存区
就是内核映像的代码(例如do_IRQ这个函数的二进制指令流)和数据(例如jiffies这个全局变量), 它们永远都存在于内存中, 直到关机。

task_struct无论是2.4以前的内核栈, 还是2.6的slab层, 都是在3G以上线性地址的。

richardhesidu 发表于 2006-02-23 19:06

2.6内核通过一个高速缓存来存放进程描述符, 高速缓存通过slab分配器的接口kmem_cache_create()创建. 这个高速缓存在系统启动的时候创建, 直到系统关闭.

通用寄存器 发表于 2006-02-23 20:44

原帖由 albcamus 于 2006-2-23 18:51 发表
>>永久分配给内核的内存区
就是内核映像的代码(例如do_IRQ这个函数的二进制指令流)和数据(例如jiffies这个全局变量), 它们永远都存在于内存中, 直到关机。

task_struct无论是2.4以前的内核栈, 还是2 ...

多谢两位老大!原书讲的这个内存区是线性空间中的一块,是不是也就是线性映射到物理内存上的那部分虚存空间呢?

richardhesidu 发表于 2006-02-25 13:10

原帖由 通用寄存器 于 2006-2-23 20:44 发表


多谢两位老大!原书讲的这个内存区是线性空间中的一块,是不是也就是线性映射到物理内存上的那部分虚存空间呢?

我觉得就是系统启动的时候一直分配给内核的那段逻辑地址空间.

通用寄存器 发表于 2006-02-25 21:31

多谢各位老大的讲解!我正在努力,多谢各位老大的关心!

seek_0380 发表于 2014-10-21 15:48

:mrgreen:今天遇到这个问题,,居然还真有人在问,谢谢啦!
页: [1]
查看完整版本: [请教]关于进程描述符在内存中的位置问题?