Kopiowanie przy zapisie może być zaimplementowane w ten sposób, że MMU otrzymuje informację, że pewne strony w przestrzeni adresowej procesu są tylko do odczytu. Gdy proces próbuje zapisać te strony, MMU generuje wyjątek, który jest z kolei przechwytywany przez kernel. Kernel przydziela wówczas nową przestrzeń w pamięci fizycznej i modyfikuje odpowiednie struktury danych tak, aby zapisywana strona odpowiadała nowo przydzielonej pamięci fizycznej.
Inne zastosowania kopiowana przy zapisie
Kopiowanie przy zapisie stosowane jest również poza jądrem systemu operacyjnego, np. w bibliotekach. Klasa string w bibliotece standardowej C++ została specjalnie zaprojektowana tak, by umożliwić kopiowanie przy zapisie:
std::string x("Hello");
std::string y = x; // x i y używają tego samego bufora
y += ", World!"; // y używa innego bufora // x wciąż używa starego bufora