XV6 Fork (): почему родитель запускается первым? - PullRequest
0 голосов
/ 01 ноября 2019

После вызова fork (), почему в большинстве случаев родительский процесс запускается перед дочерним процессом? В каком сценарии дочерний процесс будет выполняться перед родительским процессом после fork ()?

Пожалуйста, объясните мне.

1 Ответ

0 голосов
/ 02 ноября 2019

Вызов fork родительского процесса аналогичен любому другому системному вызову в этом вопросе, который после завершения возвращается к коду приложения, процесс останавливается и переключается с другим процессом (который может быть дочерним процессом) из-заУпреждающий характер планирования используется XV6 (как и многие другие ОС). Дочерний процесс будет запущен до родительского процесса, если родительский процесс завершит свой период среза времени после начала обработки системного вызова fork и до того, как начнется обработка возврата к коду приложения (см. Строку, приводящую к выходу процесса изконец функции 'trap').

...