zt52952 发表于 2004-10-14 16:31:12

用CR3进行页目录和表交换不好吧!我不太理解.

:wink:
刚刚看了点Linux的内存管理,所以我以下的发言都可能是断章取意。

Linux为每个进程都生成一个3级页目录和页表,然后以改变系统寄存器CR3的方法来调度进程,那样每调一次都有刷新将要运行程序的页目录和页表这样是很耗时的,我觉得不可行,
当然我指的是Intel CPU架构,使用段交换来调度进程才是合理的,段描述表在高速缓存中进程调度只不过是加减某个进程的段选择子而已。

我对这个不太明白,不知谁可不可以给我指点指点。

kakuyou 发表于 2004-10-14 21:02:07

你真的是看的段章取义,可以说完全没看懂。

cr3里储存的是放着页目录的那个页的物理地址,所有进程的页目录一直在内存里,cr3说白了就是个指针。

不用段的原因是1,不好移植,2,段交换实际上非常耗时(尽管是cpu的一条指令)3无法实现好的页交换,因为如果使用段的话要只能整个的挪动,4,无法很好的实现共享内存。

多读书吧

keenor 发表于 2004-10-21 08:48:05

你说它不好,大家就会觉得不爽。

kakuyou 发表于 2004-10-21 15:45:33

你说它不好,大家就会觉得不爽。

怎么能说是不爽呢,呵呵,并不是迷信linux,而是目前除了实现成那样别无它法。
页: [1]
查看完整版本: 用CR3进行页目录和表交换不好吧!我不太理解.