Re: Catalyst: увеличиваем скорость реакции

Alexandr Ciornii alexchorny at gmail.com
Mon Sep 13 12:40:45 PDT 2010


13 сентября 2010 г. 22:30 пользователь Ivan Иван <solodbeer at yandex.ru> написал:

>>  Как я написал раньше, fork - это не копирование. Память помечается как
>>  используемая несколькими процессами. fork был специально так
>>  оптимизирован. В частности, system() работает через fork().
>>
>
> Тут вот, можно поподробнее. Я думал всегда, что идёт всё же копирование скопа. И, для threads, в отличии от классического fork можно указать совместно используемые переменные (= память). Если форк тупо помечает память, то при изменении переменных, это бы видели остальные чилды. Что как бэ не так. Значит ссылки на переменные - откопированны, а не просто помеченны.

Страница памяти (не вся память занятая процессом, а какой-то небольшой
кусок) копируется только при модификации. Поэтому и называется COW -
copy-on-write. Техника широко применяется не только в Unix fork() но и
в самом Perl невидимо для пользователя.

http://en.wikipedia.org/wiki/Copy-on-write


-- 
Alexandr Ciornii, http://chorny.net


More information about the Kiev-pm mailing list