|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Valery Gruzdev 2:5024/1.46 16 Sep 2000 11:45:28 To : Danila Elovkoff Subject : Одна копия сегмента памяти --------------------------------------------------------------------------------
Пишут тут, 13 Sep 00 20:08, Danila Elovkoff к All:
DE> Я вот про что: когда два раза выполняется exec(".../bash",..), то как
DE> ядро понимает, что еще одну копию кода делать не надо ?
Тут все дело в механизме. При запуске программы ее исполняемый код mmap'ится в
память, т.е. просто система знает, что адреса с такого-то по такой-то на самом
деле лежат на диске. В оперативку они попадают благодаря тому же механизму, что
используется для дискового кэша - при обращении. Кстати, отсюда приятный
побочный эффект - код, который не вызывается, в ОЗУ не попадает вообще.
Соответственно, когда несколько процессов исполняют одну и ту же программу - они
мапят один и тот же файл, и все получается само собой.
Будьте здоровы!
Дядюшка Grue.
--- GoldED/LNX 3.0.1
* Origin: All we are is dust in the wind (2:5024/1.46)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/276939c36111.html, оценка из 5, голосов 10
|