fork() (Что же всё-таки делает системный вызов fork?)
Модератор: Модераторы разделов
-
verbatium
- Сообщения: 5
fork()
Насколько я знаю, fork() служит для создания нового процесса. А чем отличаются контекст процесса-родителя от контекста процесса-ребёнка после выполнения fork(), ну кроме значений ppid и pid в таблице процессов?
-
flook
- Сообщения: 585
- Статус: Просто flook
Re: fork()
Ничем, кроме еще кода возврете из fork().
В каждом из нас спит гений... и с каждым днем все крепче...
-
d_Sun
- Сообщения: 291
Re: fork()
НАЗВАНИЕ
fork - создает дочерний процесс
ОБЗОР
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
ОПИСАНИЕ
fork создает процесс-потомок, который отличается от родительского только значениями PID (идентификатор процесса) и PPID (идентификатор родительского процесса), а также тем фактом, что счетчики использования ресурсов установлены в 0. Блокировки файлов и сигналы, ожидающие обработки, не наследуются.
Под Linux fork реализован с помощью "копирования страниц при записи" (copy-on-write, COW), поэтому расходы на fork сводятся к копирования таблицы страниц родителя и созданию уникальной структуры, описывающей задачу.
З.Ы. 10 секунд поиска на www.opennet.ru!
З.Ы. / З.Ы. Поиск по форуму тоже рулит!
fork - создает дочерний процесс
ОБЗОР
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
ОПИСАНИЕ
fork создает процесс-потомок, который отличается от родительского только значениями PID (идентификатор процесса) и PPID (идентификатор родительского процесса), а также тем фактом, что счетчики использования ресурсов установлены в 0. Блокировки файлов и сигналы, ожидающие обработки, не наследуются.
Под Linux fork реализован с помощью "копирования страниц при записи" (copy-on-write, COW), поэтому расходы на fork сводятся к копирования таблицы страниц родителя и созданию уникальной структуры, описывающей задачу.
З.Ы. 10 секунд поиска на www.opennet.ru!
З.Ы. / З.Ы. Поиск по форуму тоже рулит!
Моя подпись сильно длинная :)