= Copy-on-write
{title2=COW}
https://en.wikipedia.org/wiki/Copy-on-write
Besides a missing page, a very common source of page faults is copy-on-write (COW).
Page tables have extra flags that allow the OS to mark a page a read-only.
Those page faults only happen when a process tries to write to the page, and not read from it.
When Linux forks a process:
* instead of copying all the pages, which is unnecessarily costly, it makes the page tables of the two process point to the same physical address.
* it marks those linear addresses as read-only
* whenever one of the processes tries to write to a page, the makes a copy of the physical memory, and updates the pages of the two process to point to the two different physical addresses
Back to article page