首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

windowsNT虚存管理属于页式管理还是段页管理?和赵老师一起进来解决方案

2012-06-19 
windowsNT虚存管理属于页式管理还是段页管理?和赵老师一起进来教课书上讲的 虚拟存储管理 有分页式分段式

windowsNT虚存管理属于页式管理还是段页管理?和赵老师一起进来
教课书上讲的 虚拟存储管理 有分页式 分段式 还有段页式。不是说段页式吸收了页式和段页的优点吗?我以为现在的系统都会采用段页式。

那windows 用的哪一种呢?有人说是分页 有人说是段页式。。

有人说分段不明显。

我糊涂了。找了一下《深入解析windows操作系统》也只看到分页机制。

谁能说说,最好能给出证据。

[解决办法]
就我所知,Windows是页式管理。

不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!

[解决办法]
http://www.labri.fr/perso/betrema/winnt/ntvmm.html
从这篇文章来看应该属于段页式,只不过人家叫Page Directory而不是叫“段表”。
当然前提是这篇文章的内容可靠。
[解决办法]
现在在看wrk 我就照抄一下windows内核原理与实现里面的话吧
首先 windows采用页式内存管理方案,在intel x86 处理器上,windows不使用段来管理虚拟内存,但是 intel x86处理器在访问内存时必须要通过段描述符,这意味着windows将所有的段描述符都构造成了从基地址0开始,且段的大小设置为0x 80000000、0xc0000000或0xffffffff,具体取决于段的用途和系统设置。所以windows系统中的代码,包括操作系统本身的代码和应用程序的代码,所面对的地址空间都是线性地址空间。这种做法相当于屏蔽了处理器中的逻辑地址概念,段只用于访问控制和内存保护
ps 0x80000000是32位windows的系统空间开始处
0xc0000000 是页目录表的开始处 同时也是64位windows系统空间的开始处
0xffffffff就不用说了吧
[解决办法]

探讨

现在在看wrk 我就照抄一下windows内核原理与实现里面的话吧
首先 windows采用页式内存管理方案,在intel x86 处理器上,windows不使用段来管理虚拟内存,但是 intel x86处理器在访问内存时必须要通过段描述符,这意味着windows将所有的段描述符都构造成了从基地址0开始,且段的大小设置为0x 80000000、0xc0000000或0xffffffff,具体取……

[解决办法]
页,段当然也要用,但用得少,比如fs/gs就有特殊用途

热点排行