阅读:971回复:3
请问当在windows下运行一个应用程序时各个段寄存器的内容是否相同?
请问当在windows下运行一个应用程序时各个段寄存器的内容,如 CS,DS,SS等段寄存器的内容是否相同的呢?
我之所以问这个是想知道windows给每个任务的4GB内存空间的具体实现。 |
|
沙发#
发布于:2004-08-10 13:53
所有的段基地址都是0,LIMIT都是4G
|
|
|
板凳#
发布于:2004-08-10 10:54
我的意思是说,对于一个任务或进程而言,是如何实现他们的各个段 共享一个4GB的386逻辑段的? |
|
地板#
发布于:2004-08-10 09:37
在2K内核中都一样都是CS=1BH,DS=ES=SS=23H
一般我们使用的都是线性地址,系统在进程切换的时候把CR3切换掉,使用不同的页表,从而使不同进程中的相同线性地址指向不同的物理地址,所以如果要自己来实现所谓的内存共享,就直接来写物理地址,这样随便他如何切换,都无所谓。 |
|
|