Почему файл exec генерирует 4 процесса в Linux?

Я создаю свой RTAI-модель-источник (сгенерированный simulink) в CygWin с gcc-linux-4.1 (кросс-компилятор CygWin) в Windows и успешно сгенерирую ELF. и ELF работает правильно на Ubuntu.

После того, как ELF работает правильно на Ubuntu, в системном мониторе есть четыре процесса с тем же именем, но с другим идентификатором процесса.

Но если я создам свой источник с gcc в Linux, он генерирует только 1 процесс, поэтому я думаю, что fork() или exec() не могут быть вызваны.

Как один файл exec может выполнить четыре процесса?

ps -elF показывает:

 FS UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 4 S root 3679 3314 0 57 - - 4362 hrtime 17:44 pts/1 00:00:00 /root/Test/test 5 S root 3680 3679 0 57 - - 4362 poll_s 17:44 pts/1 00:00:00 /root/Test/test 5 S root 3681 3680 0 56 - - 4362 rt_sch 17:44 pts/1 00:00:00 /root/Test/test 5 S root 3682 3680 0 -40 - - 4362 rt_sch 17:44 pts/1 00:00:00 /root/Test/test 

  • Проблема зависимости пакета deb deb
  • Edimax (7392: c711) Адаптер Wifi - драйвер, необходимый для Linux Mint 18
  • Установка Expect и TCL
  • расхождение между количеством ядер и тепловыми зонами в `/ sys / class / therm /`
  • Рекурсивно удалить скрытую директорию и ее файлы?
  • У моего дистрибутива есть etags, символически привязанные к ctags, но где я могу получить оригинальные etags?
  • Cursor замерзает - нажатия клавиш выпустить?
  • безопасная конфигурация xorg
  • One Solution collect form web for “Почему файл exec генерирует 4 процесса в Linux?”

    Для некоторых процессов совершенно нормально создавать другие копии после выполнения, обычно для повышения производительности путем параллельного выполнения. Что касается того, как это работает, процесс fork (2) (он может или не может также exec (2) другой копией себя, в зависимости от способа его реализации). Посмотрите man 2 fork и man 2 exec .

    По сути, новые процессы в Linux сначала создаются как копии программы, вызывающей их, используя fork (2). После этого они могут заменить образ процесса, используя exec (2). Это обычный рабочий процесс при использовании, например, оболочки для выполнения команд. Если это один и тот же процесс, не может быть последующего exec – также возможно выполнить код, который обусловлен тем, что он находится в определенном дочернем элементе без необходимости выполнять.

    В Кембриджском университете есть хорошая страница о том, как это работает, если вы хотите получить дополнительную информацию.

    Interesting Posts

    Как изменить цвет разных файлов в ls

    Как мы можем разрешить пользователям без полномочий root управлять сервисом system.d?

    Как добавить разрешение группы только для чтения в папку, у которой уже есть группа по умолчанию, и унаследовать ее для всех вновь созданных файлов и папок?

    Путаница в отношении создания самоподписанного сертификата для портала приложений, разработанного с использованием liferay

    Легкая альтернатива X11 доступна?

    bash: tee ест новые строки после exec

    Различные сценарии, которые я вижу, не будут проходить через python

    Как вставить содержимое файла в другой файл перед шаблоном (маркером)?

    umount: устройство занято. Зачем?

    Веб-сервер Debian недоступен после перемещения VM

    Синтаксис HISTTIMEFORMAT

    Что такое брендбот?

    Как можно разделить ссылки при извлечении из файла tar?

    системный объем изменяется, когда объем vlc увеличивается на 100%

    Замена имен переменных оболочки в другой переменной

    Linux и Unix - лучшая ОС в мире.