copy_vspace流程图
2015-07-05 10:33:59 3 举报
copy_vspace流程图描述: 1. 开始。 2. 读取源VSpace数据。 3. 检查源VSpace是否有效。 4. 如果无效,返回错误信息。 5. 创建目标VSpace对象。 6. 复制源VSpace的属性到目标VSpace。 7. 遍历源VSpace中的子对象,递归执行步骤5和6。 8. 将目标VSpace保存到数据库。 9. 返回成功信息。 10. 结束。
作者其他创作
大纲/内容
开始
删除当前cspace中关两个slot中的cappage+=4K
调用vka_cnode_copy,把刚才得到的两个cap拷贝到当前cspace的两个slot中
否
在dest中,以page为起始地址,建立一个新的页
利用拷贝过来的两个物理页的cap,映射到current_vspace中,地址分别为src_addr和dest_addr
解除到当前vspace中位于src_addr和dest_addr中的映射
结束
删除在当前cspace中开辟的两个slot
调用vspace_get_cap,分别得到src和dest中page虚地址所在物理页的cap
在当前cspace中,开辟两个slot
遍历每一个页,是否达到末尾?(page指向当前页的首地址)
调用memcpy从src_addr处拷贝一个页的内容到dest_addr处
是
0 条评论
下一页