在 XV6 中执行停止的进程

Executing a Stopped Process in XV6

我写了两个新的系统调用并将它们添加到 xv6 OS 内核中。因此,使用一个系统调用我可以保存进程状态,使用另一个系统调用我可以重新加载以前的状态并继续。 问题重新加载部分


仅重新加载进程的上下文就足够了吗? (我的意思是 struct context 其中包含一些 CPU 寄存器)

没有

该进程可能在 proc->ofile 中打开了文件和管道,您需要 save/load。

另请注意,当您重新加载进程时,其 parent 可能已不存在。
你真的想确保你的进程不会在没有真正父进程的情况下四处漂浮,否则你会遇到一些有趣的错误。