摘要: 先看看xv6的进程创建和切换机制,再做jos实验lab3xv61. 创建第一个进程userinit()1. 从进程结构数组找到一个空闲的进程结构 struct proc2. 为进程创建页目录pgdir,并在其中对内核区域进行映射(setupkvm, kmap)3. 申请一个物理页,复制initcode,并将其映射到0地址开始。4. 设置进程的trapframe数据,进程的栈如下图。5. 将进程状态设置为RUNNABLE2. 进程切换刚刚创建好第一个进程init,那么如何切换到该进程环境中去执行?scheduler()1. 到进程数组中找到状态为RUNNABLE的进程。当前系统只有init这个进 阅读全文
posted @ 2012-11-26 16:22 sammei 阅读(975) 评论(0) 推荐(0) 编辑