Kopiowanie przy zapisie (ang. copy-on-write, COW) – technika optymalizacji używana w programowaniu komputerów, gdy istnieje potrzeba współdzielenia względnie dużej ilości danych (np. między wątkami czy procesami), co do których nie ma pewności, że zostaną zmodyfikowane przez używające je obiekty.
Początkowo zamiast rzeczywistego, kosztownego (czasowo i pamięciowo) kopiowania pamięci zwracany jest wskaźnik do oryginalnych danych; kopiowanie jest wykonywane dopiero wtedy, gdy zachodzi potrzeba ich modyfikacji. Największą zaletą tej techniki jest to, że jeżeli nigdy nie będą realizowane żadne zmiany, to nie będzie również potrzeby wykonywania kopii.
Zastosowanie kopiowania przy zapisie w systemach operacyjnych
Kopiowanie przy zapisie jest wykorzystywane przez system operacyjny w celu szybszego wykonywania funkcji fork. Funkcja ta tworzy proces potomny, który posiada dokładną kopię kontekstu procesu nadrzędnego, jak również kopię jego pamięci. Ponieważ kopiowanie pamięci jest czasochłonne, dlatego zamiast kopiowania system operacyjny (kernel) — korzystając z mechanizmu stronicowania — początkowo odwzorowuje przestrzeń adresową procesu potomnego na pamięć fizyczną zarezerwowaną dla procesu nadrzędnego.