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

Содержание

Слайд 2

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

ПРОЦЕСС

- программа, которая выполняется в текущий момент. Стандарт ISO 9000:2000 определяет

процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие.
Слайд 3

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

ИЕРАРХИЯ ПРОЦЕССА

Процесс А

Дочерний процесс B

Дочерний процесс D

Дочерний процесс C

Дочерний процесс B2

Дочерний

процесс C2

Дочерний процесс E

Слайд 4

ИСПОЛЬЗОВАНИЕ РЕСУРСОВ ПРИ СОЗДАНИИ ПРОЦЕССА Разделение ресурсов. Процесс-родитель и дочерние процессы

ИСПОЛЬЗОВАНИЕ РЕСУРСОВ ПРИ СОЗДАНИИ ПРОЦЕССА

Разделение ресурсов.
Процесс-родитель и дочерние процессы разделяют

все ресурсы;
Дочерние процессы разделяют подмножество ресурсов процесса-родителя;
Процесс-родитель и дочерний процесс не имеют общих ресурсов.

Исполнение.
Процесс-родитель и дочерние процессы исполняются совместно
Процесс-родитель ожидает завершения дочерних процессов

Адресация и использование памяти.
Адресное пространство дочернего процесса копирует адресное пространство процесса-родителя; у дочернего процесса имеется программа, загруженная в него;
Дочерний процесс исполняется в том же пространстве памяти, что и процесс-родитель (облегченный процесс).

Слайд 5

СОЗДАНИЕ ДОЧЕРНЕГО ПРОЦЕССА fork - создающий новый процесс (потомок), который является

СОЗДАНИЕ ДОЧЕРНЕГО ПРОЦЕССА

fork - создающий новый процесс (потомок), который является практически

полной копией процесса-родителя, выполняющего этот вызов.
vfork функция подобна fork, но более эффективна.
В Windows новый процесс создается функцией CreateProcess
Слайд 6

СЕМЕЙСТВО ФУНКЦИЙ EXEC execv execve execvp execl execle execlp Эти функции

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

процесс выполнить новую программу после того, как он был раздвоен.
Слайд 7

ПРОЦЕСС-СИРОТА в семействе операционных систем UNIX вспомогательный процесс, чей основной процесс

ПРОЦЕСС-СИРОТА

в семействе операционных систем UNIX вспомогательный процесс, чей основной процесс (или

связь с ним) был завершен нештатно (не подав сигнала на завершение работы).
Слайд 8

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

ПРОЦЕСС-ЗОМБИ

дочерний процесс в Unix-системе, завершивший своё выполнение, но ещё присутствующий в

списке процессов операционной системы, чтобы дать родительскому процессу считать код завершения.
Слайд 9

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

ЗАВЕРШЕНИЕ ПРОЦЕССА

входная функция первичного потока возвращает управление
один из потоков процесса вызывает

функцию ExitProcess
поток другого процесса вызывает функцию TerminateProcess
все потоки процесса умирают по своей воле
Слайд 10

ПРИ ЗАВЕРШЕНИИ ПРОЦЕССА: Выполнение всех потоков в процессе прекращается Все объекты,

ПРИ ЗАВЕРШЕНИИ ПРОЦЕССА:

Выполнение всех потоков в процессе прекращается
Все объекты, созданные

процессом, уничтожаются, а объекты ядра закрываются (если их не использует другой процесс).
Код завершения процесса меняется со значения STILL_ACTIVE на код, переданный в ExitProcess или TerminateProcess.
Объект ядра "процесс" переходит в свободное, или незанятое (signaled), состояние. Прочие потоки в системе могут при остановить свое выполнение вплоть до завершения данного процесса.
Счетчик объекта ядра "процесс" уменьшается на 1