!15 fixed a typo of lab3_1 tutorial in chapter5_process.md

Merge pull request !15 from wsyy/master
pull/16/head
syivester 2 years ago committed by Gitee
commit 78cb810bc9
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

@ -557,7 +557,7 @@ user/app_naive_fork.c --> user/user_lib.c --> kernel/strap_vector.S --> kernel/s
206 }
```
该函数使用第175--205行的循环来拷贝父进程的逻辑地址空间到其子进程。我们看到对于trapframe段case CONTEXT_SEGMENT以及堆栈段case CODE_SEGMENTdo_fork()函数采用了简单复制的办法来拷贝父进程的这两个段到子进程中,这样做的目的是将父进程的执行现场传递给子进程。
该函数使用第175--205行的循环来拷贝父进程的逻辑地址空间到其子进程。我们看到对于trapframe段case CONTEXT_SEGMENT以及堆栈段case STACK_SEGMENTdo_fork()函数采用了简单复制的办法来拷贝父进程的这两个段到子进程中,这样做的目的是将父进程的执行现场传递给子进程。
然而对于父进程的代码段子进程应该如何“继承”呢通过第187--195行的注释我们知道对于代码段我们不应直接复制减少系统开销而应通过映射的办法将子进程中对应的逻辑地址空间映射到其父进程中装载代码段的物理页面。这里就要回到[实验2内存管理](chapter4_memory.md#pagetablecook)部分,寻找合适的函数来实现了。注意对页面的权限设置(可读可执行)。

Loading…
Cancel
Save