Архитектура современных операционных систем
38 2. exec() – используется для запуска в рамках текущего процесса но- вой программы, загруженной из файла, указанного в качестве параметра при вызове этой функции. 3. exit(status) – функция используется для завершения процесса. В ка- честве параметра можно задать код завершения (статус). Exit записывает этот код в элемент системной таблицы процессов, описывающих текущий процесс и посылает родительскому процессу специальный сигнал SIGCLD, извещающий о завершении дочернего процесса. 4. wait() – используется для ожидания родительским процессом за- вершения дочернего процесса. Ставит родительский процесс в состояние ожи- дания до прихода сигнала SIGCLD, а после прихода, считывает код завершения дочернего процесса из элемента системной таблицы процессов. Возможны разные ситуации использования exit и wait в родительском и дочернем процессе (рис. 2.20.): Рис. 2.20. Состояние SZOMB (zomby) возникает в случае, если дочерний процесс завершится [exit()] раньше, чем родительский процесс перейдет в его ожидание [wait()].
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy