Еще нет никакого руководства использования этим тегом …!

Руководство использования, также известное как тег выборка Wiki, является короткой аннотацией, которая описывает, когда и почему тег должен использоваться на этом сайте конкретно.

Еще нет никакого тега Wiki для этого тега …!

Справка wikis тега представляет вновь прибывших тегу. Они содержат обзор темы, определенной тегом, наряду с инструкциями по его использованию.

Все зарегистрированные пользователи могут предложить новый тег wikis.

(Обратите внимание, что, если у Вас есть меньше чем 20 000 репутаций, Ваш тег, Wiki будет одноранговым узлом, рассмотренным, прежде чем это будет опубликовано.)

---------121--------2559----vfork является системным вызовом UNIX, указанным в POSIX 1-2001 разрешение программы создать дочерний процесс при приостановке себя.

vfork является системным вызовом UNIX, указанным в POSIX 1-2001 разрешение программы создать дочерний процесс при приостановке себя.

Точно так же, как fork системный вызов, vfork может использоваться процессом для создания дочернего процесса. Однако при использовании vfork, вызывающий поток приостановлен во время выполнения дочернего процесса. Резюме этого системного вызова следующие:

#include <sys/types.h> #include <unistd.h> pid_t vfork(void); 

Возврат к родительскому процессу произойдет в любой ситуации, включающей завершение дочернего процесса, вышло ли это (использование _exit) или был сообщен и уничтожил. Если дочерний процесс звонит execve однако, родительский процесс будет возвращен.

Точно так же, как fork, vfork создает процесс на основе звонящего. Поэтому несколько атрибутов от обработки вызовов будут скопированы в ребенка: дескрипторы файлов, обработчики сигналов... Дочерний процесс также будет частью той же группы процесса (и поэтому, сессия). Однако vfork не обрабатывает виртуальные адресные пространства процессов как fork. Действительно, при вызове vfork, таблицы страницы памяти родительского процесса не должны быть дублированы, но сделаны доступными для недавно созданного дочернего процесса.

Так как POSIX.1-2008 удалил спецификацию vfork, пользователи должны знать о следующем:

  • Нельзя гарантировать, что родительский процесс действительно останется приостановленным в любой ситуации, в которой все еще работает дочерний процесс.
  • Как следствие пользователь не может полагаться на поведения, вовлеченные в сценарии общей памяти между родителем и vforkпроцесс редактора.

Для получения дополнительной информации относительно этого системного вызова, пользователи приглашены читать fork(2) и vfork(2).

1
ответ

В чем преимущество отсутствия копирования записей таблицы страниц в системном вызове vfork()?

Системный вызов vfork () имеет тот же эффект, что и fork(), за исключением того, что записи таблицы страниц родительского процесса не копируются.Сегодня, с семантикой copy-on-write и child-runs-first, единственным ...
09.09.2017
1
ответ

Как может обработать выполнение “vfork без должностного лица”, заканчиваются в длинном бесперебойном сне?

В этом ответе пользователь предлагает, чтобы Обычно, Бесперебойный сон не длился долго, но как под окнами, поврежденные драйверы или поврежденные userpace программы (vfork без должностного лица) могут закончить тем, что спали в...
23.05.2017