прочитал, спасибо!..вобщемто знал про mmap(...) и раньше но использовать в приклодных программах не приходилось (так как ограничение на 2~4 гигобайта для x86-компютеров -- это слишком мало)
, но прочитать лишний раз посмотреть man -- конешно же никогда не помешает :-)
говояр про mmap(...) вы наверно намекаете на то что при открытии исполняемого файла (и shared_object_библиотек) -- они НЕ копируются в память, а только mmap-яться(?)
ну тык я нигде и не говорил что они копируются? и даже не намекал! зачем мы вообще затронули тему mmap(...)? фраза "открытие процесса" и "копирование файлов в память" -- помоему явно не синонимы.
или вы чтото другое имели ввиду? если проясните -- то будет хорошо. :-)
далее про cow (copy-on-write) .
говоря про механизмы cow -- вы наверно имеете ввиду -- что когда производиться fork(...) -- МГНОВЕННОЕ_копирование всего состояния fork`нутого процесса -- на самом деле НЕ производиться. а производиться только "ленивое" копирование (тоесть только тех (и только тогда) областей памяти которые начинают изменять после fork(...) в дочернем клоне )
...и ещё вы наверно имели ввиду то что ПОВТОРНО исполняемые файлы (и shared_object_файлы) не mmap(...)-яться, а даётся толко новое адресное пространство на уже за`mmap`енный области.
(( например при открытии gajim и потом emerge ))
ну и что из этого? при чём тут cow ? зачем было поднимать тему cow ?
да... конешно... НИКТO НЕ СПОРИТ(!) что "mmap" и "cow" -- ускоряют процесс открытия нового процесса: повторно не производяться рутинные операции по запуску исполняемого файла.
но я и не говорил о том что "повторно запускается исполняемый файл" -- я говорил что запускаются "ДВА ПРОЦЕССА(!), а не ДВЕ нити одного процесса".
"процесс" и "исполняемый файл" -- РАЗУМЕЕТСЯ ЧТО это НЕ одно и тоже (даже школьник знает) . например один исполняемый файл (его процесс) -- может пораждать (клонировать) кучу процессов (совершенно не связанных с исполняемыми файлами) -- но от этого НЕ станет производиться каждый раз процедура запуска файла.
когда мы говорим слово "процесс" -- первое что должно приходить в голову это -- "адрессное пространсиво и файловые дескрипторы", а не какието там действия по запуску win-program.exe-файлов .
может я был и неправ в верхних своих сообщениях когда говорил о том что threads уже НЕ используют для увеличения производительности (а только процессы) -- этот момент по крайней мере спортный...
...но вот эти ваши издевательства на тему mmap и cow...
...зачем они были? если хотите чтото КОНКРЕТНОЕ сказать мне -- скажите!
хотите сказать что "при повторном открытии python на самом деле не открывается ПРОЦЕСС, а просто запускается ещё одна НИТЬ по уже открытому процессу" ? ну так так и скажите это! в Windows возможно именно так и происходит. а в unix -- НЕТ НЕ ТАК: Нить и Процесс -- отличаются тем что разграниченны между собой НЕ-общим состоянием (хотя механизмы mmap и cow -- помогают делать это разгроничение -- не очень требовательным к вычислительным ресурсам).
а если не хотите говорить -- ну тык если молчать то конешно выглядеть умнее будете (тоже мне секрет) .