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就不用说了吧
[解决办法]