>говояр про mmap(...) вы наверно намекаете на то что при открытии исполняемого
>файла (и shared_object_библиотек) -- они НЕ копируются в память, а только
>mmap-яться(?) Именно.
>ну и что из этого? при чём тут cow ? зачем было поднимать тему cow ?
Эх. При использовании памяти, о котором вообще-то говорили.
>да... конешно... НИКТO НЕ СПОРИТ(!) что "mmap" и "cow" -- ускоряют процесс
>открытия нового процесса: повторно не производяться рутинные операции по запуску
>исполняемого файла.
Дело в этом контексте не в ускорении, а в том, что если есть:
* пользователи Вася и Петя
* программки A и B, использующие библиотечку, ну пусть L
-- то запуск каждым из этих пользователей по своему экземпляру обеих этих программок приведёт, грубо говоря, вот к какой картинке использования памяти:
* mmap'нутый экземпляр L в r/o
* mmap'нутые бинарники A и B
* rw-шные куски с данными, специфическими для процессов, запущенных Васей и Петей
Если же программки слинкованы статически (один из обсуждаемых случаев) либо таскают с собой свои копии (на *nix с ELF можно также почитать про RPATH при желании) -- то к такой:
* mmap'нутые бинарники A и B, каждый из который включает
в своём адресном пространстве копию L
* rw-шные куски с данными пользователей
Хуже может быть только если каждого из пользователей угораздило поставить ещё и свои экземпляры собранных статически программ (которые находятся в отдельных файлах); тогда реюза памяти, занимаемой кодом, в общем случае не будет (KSM в сторону).
>но я и не говорил о том что "повторно запускается исполняемый файл"
>-- я говорил что запускаются "ДВА ПРОЦЕССА(!), а не ДВЕ нити
>одного процесса".
Да-да, я так и прочитал.
>"процесс" и "исполняемый файл" -- РАЗУМЕЕТСЯ ЧТО это НЕ одно и тоже
>(даже школьник знает) . например один исполняемый файл (его процесс)
Так всё-таки "даже школьник" или "исполняемый файл (его процесс)"?
>-- может пораждать (клонировать) кучу процессов (совершенно не связанных
>с исполняемыми файлами) -- но от этого НЕ станет производиться каждый
>раз процедура запуска файла.
Файлы не "запускаются".
>может я был и неправ в верхних своих сообщениях когда говорил о
>том что threads уже НЕ используют для увеличения производительности (а только
>процессы) -- этот момент по крайней мере спортный...
Лучше не говорить о том, в чём плаваешь. Проверено. :)
>...но вот эти ваши издевательства на тему mmap и cow...
>...зачем они были? если хотите чтото КОНКРЕТНОЕ сказать мне -- скажите!
Конкретное Вы и сами поймёте, когда почитаете более системно про организацию виртуальной памяти в современных (и даже не особо) ОС. Кажется, и у Робачевского в его довольно доступной книжке по UNIX затрагивалось, хотя точно не помню.
Переписывать книжку глупо, а для внятного и сжатого рассказа мне опыта не хватает. То есть что глупости несёте (и не со зла, просто прочитанное не улеглось) -- понимаю, а объяснить без ссылок на самые основы -- никак.
>хотите сказать что "при повторном открытии python на самом деле не открывается
>ПРОЦЕСС, а просто запускается ещё одна НИТЬ по уже открытому процессу"?
Нет.