Я задаюсь вопросом о следующей проблеме:
Взятый некоторые abc
консоль (неважно, если bash
,zsh
или что-то) в некоторых *отклоняют систему. Если я запускаю некоторый процесс stuff
который использует 2 МБ памяти, и затем запустите второй экземпляр процесса stuff
, сколько памяти будет использоваться всего?
Действительно ли это верно, что 4 МБ памяти теперь будут использоваться?
Если оба процесса запускаются независимо, мы должны предполагать, что каждый процесс будет запускаться так, как будто не запущен другой «двойной» процесс (если им не нужно контролировать одни и те же ресурсы, например файлы). Я думаю, что это относится к большинству простых программ без GUI или необходимости заботиться о нескольких экземплярах.
Однако система может избежать этого и обмениваться постоянными статическими данными между всеми экземплярами процесса. Эти данные могут состоять из двоичного кода, констант, общих библиотек и т. Д.
Кроме того, когда вам нужно только физическое использование ОЗУ, вам также следует подумать о перестановке. Linux будет помещать редко используемые данные в раздел / файл подкачки на жестком диске, чтобы освободить немного более оперативной памяти в качестве кеша.
Итак, сделаем вывод: Трудно сказать, сколько памяти будет использоваться многими равными процессами, потому что ядро оптимизирует использование, разделяя постоянные данные между различными экземплярами, но вы можете почти уверен, что использование одного отдельного процесса будет менее чем в n раз.