Обзор процесса создания дочерних процессов
Процесс
Иерархия процесса
Использование ресурсов при создании процесса
Создание дочернего процесса
Семейство функций exec
Процесс-сирота
Процесс-зомби
Завершение процесса
При завершении процесса:
215.57K
Категория: ПрограммированиеПрограммирование

Обзор процесса создания дочерних процессов. Стандарт ISO

1. Обзор процесса создания дочерних процессов

ОБЗОР ПРОЦЕССА СОЗДАНИЯ ДОЧЕРНИХ
ПРОЦЕССОВ
Павлов Г.Б.
2ивт-3дб-280

2. Процесс

ПРОЦЕСС
- программа, которая
выполняется в текущий
момент. Стандарт ISO
9000:2000 определяет
процесс как совокупность
взаимосвязанных и
взаимодействующих
действий, преобразующих
входящие данные в
исходящие.

3. Иерархия процесса

ИЕРАРХИЯ ПРОЦЕССА
Процесс А
Дочерний
процесс B
Дочерний
процесс B2
Дочерний
процесс C
Дочерний
процесс C2
Дочерний
процесс D
Дочерний
процесс E

4. Использование ресурсов при создании процесса

ИСПОЛЬЗОВАНИЕ РЕСУРСОВ ПРИ СОЗДАНИИ ПРОЦЕССА
Разделение ресурсов.
Процесс-родитель и дочерние
процессы разделяют все
ресурсы;
Дочерние процессы
разделяют подмножество
ресурсов процесса-родителя;
Процесс-родитель и дочерний
процесс не имеют общих
ресурсов.
Адресация и использование памяти.
Адресное пространство
дочернего процесса копирует
адресное пространство
процесса-родителя; у дочернего
процесса имеется программа,
загруженная в него;
Дочерний процесс исполняется в
том же пространстве памяти, что
и процесс-родитель (облегченный
процесс).
Исполнение.
Процесс-родитель и дочерние процессы исполняются
совместно
Процесс-родитель ожидает завершения дочерних процессов

5. Создание дочернего процесса

СОЗДАНИЕ ДОЧЕРНЕГО ПРОЦЕССА
fork - создающий новый процесс (потомок), который является
практически полной копией процесса-родителя,
выполняющего этот вызов.
vfork функция подобна fork, но более эффективна.
В Windows новый процесс создается функцией CreateProcess

6. Семейство функций exec

СЕМЕЙСТВО ФУНКЦИЙ EXEC
execv
execve
execvp
execl
execle
execlp
Эти функции используются, чтобы заставить дочерний
процесс выполнить новую программу после того,
как он был раздвоен.

7. Процесс-сирота

ПРОЦЕСС-СИРОТА
в семействе операционных систем UNIX
вспомогательный процесс, чей основной процесс (или
связь с ним) был завершен нештатно (не подав сигнала
на завершение работы).

8. Процесс-зомби

ПРОЦЕСС-ЗОМБИ
дочерний процесс в Unixсистеме, завершивший
своё выполнение, но ещё
присутствующий в списке
процессов операционной
системы, чтобы дать
родительскому процессу
считать код завершения.

9. Завершение процесса

ЗАВЕРШЕНИЕ ПРОЦЕССА
входная функция первичного потока возвращает
управление
один из потоков процесса вызывает функцию
ExitProcess
поток другого процесса вызывает функцию
TerminateProcess
все потоки процесса умирают по своей воле

10. При завершении процесса:

ПРИ ЗАВЕРШЕНИИ ПРОЦЕССА:
Выполнение всех потоков в процессе прекращается
Все объекты, созданные процессом, уничтожаются, а
объекты ядра закрываются (если их не использует
другой процесс).
Код завершения процесса меняется со значения
STILL_ACTIVE на код, переданный в ExitProcess или
TerminateProcess.
Объект ядра "процесс" переходит в свободное, или
незанятое (signaled), состояние. Прочие потоки в
системе могут при остановить свое выполнение
вплоть до завершения данного процесса.
Счетчик объекта ядра "процесс" уменьшается на 1
English     Русский Правила