码迷,mamicode.com
首页 > 其他好文 > 详细

ucore Lab2学习:Virtual Memory

时间:2014-07-01 21:44:49      阅读:539      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   width   

我觉得这个lab最主要就是理解好Virtual memory是怎么map到physical memory的。在CSAPP里面了,通过MMU和TLB电路来实现转换。x86中是用的2级page table。

还要理解stack frame(譬如lab1的project 4.1.1):switch_to_u2k和swith_to_k2u.有2种方法。一个是通过改写stackframe的TSS。一个是直接用asm改写gate descriptor。

CSAPP讲了:每一个process有一个对应的VM和Page table.

bubuko.com,布布扣bubuko.com,布布扣

不过为什么BIOS在xv6和ucore的位置不同呢?(kernal.ld)都是指定了entry在0x100000处(物理地址)。

在csapp里面很好的解释了user/kernal stack以及process直接如何share 全局变量和kernel (xv6 book: each process has 2 stacks: user stack, and kernel stack)

bubuko.com,布布扣bubuko.com,布布扣

在xv6中提到:像右图这样把2段VM映射到同一个物理地址是page table一个惯用伎俩!

// return address
return &((pte_t*)KADDR(PDE_ADDR(*pdepage)))[PTX(la)];

ucore Lab2学习:Virtual Memory,布布扣,bubuko.com

ucore Lab2学习:Virtual Memory

标签:des   style   blog   http   color   width   

原文地址:http://www.cnblogs.com/gpuasic/p/3816667.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!