Я не буду повторять тот же ответ на Copy-on-Write. Я думаю, ответ Эндрю и ответ Чарли уже сделали это очень ясным. Я приведу вам пример из мира ОС, просто чтобы упомянуть, насколько широко эта концепция используется.
Мы можем использовать fork()
или vfork()
для создания нового процесса. vfork следует концепции копирования при записи. Например, дочерний процесс, созданный vfork, поделится сегментом данных и кода с родительским процессом. Это ускоряет время разветвления. Ожидается, что вы будете использовать vfork, если вы выполняете exec, а затем vfork. Таким образом, vfork создаст дочерний процесс, который поделится сегментом данных и кода со своим родителем, но когда мы вызовем exec, он загрузит образ нового исполняемого файла в адресное пространство дочернего процесса.