guotong1988 发表于 2015-01-23 13:35

32位,每个用户进程都有0-3G的虚拟内存?【附图】

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=2018659

看过这张图后好像是这样的

那CPU发出一个位于0-3G的虚拟地址,怎么知道访问的是哪个用户进程?

super皮波 发表于 2015-01-23 13:36

每个用户进程都有自己的页表,在进程切换的时候对页表进行切换

guotong1988 发表于 2015-01-23 14:16

回复 2# super皮波


    CPU想访问进程A 却只能发出 同一个虚拟地址,哪个struct里的什么东西确定这个呢

super皮波 发表于 2015-01-23 14:23

回复 3# guotong1988
你看一下task_struct结构体中的mm成员,在mm中找一下pgd

   

guotong1988 发表于 2015-01-23 15:03

回复 4# super皮波


    哦,每个task的这个pgd不一样!

super皮波 发表于 2015-01-23 15:05

回复 5# guotong1988

是的,进程切换的时候,同时切这个pgd
   
页: [1]
查看完整版本: 32位,每个用户进程都有0-3G的虚拟内存?【附图】