Создание новых процессов

Механизм порождения новых процессов довольно существенно различается в разных операционных системах. Во всех операционных системах семейства UNIX новые процессы в системе не появляются «из ниоткуда», а ответвляются от уже существующих в системе процессов.

Когда возникает необходимость создания нового процесса (C), текущий процесс (P) выполняет системный вызов fork (см. рисунок Рисунок 1.42, «Создание нового процесса»). При этом создаётся новый процесс, представляющий собой копию исходного процесса и его контекста. Новый процесс отличается тем, что у него другой PID, а родителем для него является запустивший процесс (P). Далее дочерний процесс (C) с помощью системного вызова exec запускает вместо себя другую программу, заново проинициализировав свои код и данные.

Рисунок 1.42. Создание нового процесса

Существует также и обратная связь между дочерним процессом и родительским. Родительский процесс (P) может синхронизовать своё исполнение с завершением процесса (C) (ожидать завершения дочернего процесса) с помощью специального системного вызова wait.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: