Kernel stack能不能被page out?

Windows内核调试

Kernel stack能不能被page out?


Thomson 2010-03-01, 00:27 上午
看,p786第一段结束,说2048 threads consumed 360 MB of actual physical memory with kernel stacks.

觉得有点奇怪,印象里面kernel stack应该也可以被page out啊.

Re: Kernel stack能不能被page out?


Thomson 2010-03-01, 13:56 下午
回复的应该是的恶意ID吧,把我的帖子都弄沉了.

Re: Kernel stack能不能被page out?


格蠹老雷 2010-03-01, 21:55 下午
哪本书的P786页?是可以被page out,那句话可能是说没有page out的内核栈所占的物理内存吧

Re: Kernel stack能不能被page out?


Thomson 2010-03-01, 22:41 下午
竟然没有打出来, 是的第768页.

Re: Kernel stack能不能被page out?


Thomson 2010-03-01, 22:43 下午
看来尖括号里面的内容不能正常显示出来, 书是 windows internals 5th edition 的第768页.

Re: Kernel stack能不能被page out?


格蠹老雷 2010-03-02, 20:57 下午

刚才看了一下这一段的上下文,写的明显有错误。

这一部分写的是栈(stack),这一节的标题是内核态栈。作者想表达的意思是内核态栈对系统内存的影响很大,会占用宝贵的内核态空间。但是表达的不太好,而且不知道为什么会算出2048个线程会用1GB的分页内存空间,360MB的物理内存。两个数字都不对啊。

按每个线程1MB用户态栈算,2048个线程会用2*1024*1MB=2GB;内核态栈即使不考虑分页与否,那么占用的物理内存即使按多算,按16KB(12KB加上PTE/PDE)算,那么只是:

16*210*2*210 = 32*220 = 32 MB

也就是32MB。

查了一下勘误表:

http://technet.microsoft.com/en-us/sysinternals/bb963901.aspx

还没有加入这个错误,所以LZ可以把这个问题报告给作者。我拿到书后就看了这一节的下一节,DPC Stack,也发现了一个错误,栈这一部分是Alex写的,看来年轻人还是需要时间走向成熟。

事实上,内核态的栈大小,还和CPU架构有关,这部分也没有提,完全就是当做x86的情况来写的...

Powered by Community Server Powered by CnForums.Net