Книга: Разработка ядра Linux
Создание нового процесса
В операционной системе Unix создание процессов происходит уникальным образом. В большинстве операционных систем для создания процессов используется метод порождения процессов (spawn). При этом создается новый процесс в новом адресном пространстве, в которое считывается исполняемый файл, и после этого начинается исполнение процесса. В ОС Unix используется другой подход, а именно разбиение указанных выше операций на две функции: fork()
и exec()
[15].
В начале с помощью функции fork()
создается порожденный процесс, который является копией текущего задания. Порожденный процесс отличается от родительского только значением идентификатора PID
(который является уникальным в системе), значением параметра PPID
(идентификатор PID
родительского процесса, который устанавливается в значение PID
порождающего процесса), некоторыми ресурсами, такими как ожидающие на обработку сигналы (которые не наследуются), а также статистикой использования ресурсов. Вторая функция — exec()
— загружает исполняемый файл в адресное пространство процесса и начинает исполнять его. Комбинация функций fork()
и exec()
аналогична той одной функции создания процесса, которую предоставляет большинство операционных систем.
- 9.1.1. Создание процесса: fork()
- Создание процесса
- Создание, завершение и просмотр учетной записи процесса
- Программное создание новых доменов приложения
- 5.7 СОЗДАНИЕ ФАЙЛА
- Этап 2D: инициализация адресного пространства процесса
- Сущность процесса миграции
- Создание файлов с блокировкой
- V Совершенствование процесса
- Создание свободно позиционируемых элементов
- Использование сервера Yaffil внутри процесса
- Семерка - первый шаг нового семейства