6.S081 lab6 cow

Copy-on-Write Fork for xv6

这次 lab 只有一关,那就是为xv6实现copy on write

xv6中的fork()系统调用将父进程的用户内存全部复制到子进程中。如果父进程内存占用很大,复制可能需要很长的时间。更糟糕的是,通常来说,这个复制在很大程度上是浪费的;例如,在子进程中,fork()之后的exec()调用会导致子进程丢弃复制的内存,可能大部分内存都没有来得及使用。另一方面,如果父子双方都使用一个page,并且其中一方或双方需要写这个page,那么确实需要复制。

阅读更多

Rust智能指针Cow

定义

Cow是一个提供了写时克隆功能的智能指针,它可以包装对数据的借用,当需要修改数据或者获取数据的所有权时,对数据clone。它的定义如下:

阅读更多