Показать сообщение отдельно
Старый 11.12.2009, 08:52     # 1
Sambotey
Junior Member
 
Регистрация: 18.02.2004
Адрес: Краснодар
Сообщения: 94

Sambotey Нимб уже пробиваетсяSambotey Нимб уже пробивается
Создание дочерних процессов

Читаю сейчас книгу по операционным системам Таненбаума и Вудхала. Там приведен такой код:

#define TRUE 1
while TRUE {
type_prompt ( );
read_command(command, parameters);

if (fork( ) != 0) {
/* код родительского процесса */
waitpid(-1, &status, 0);
} else {
/* код дочернего процесса */
execve(command, parameters, 0)
}
}

и указано, что execve "перемещает образ памяти процесса", или иначе "заменяет весь образ памяти процесса файлом, указанным в первом параметре".
Как я понял, при создании дочернего процесса, создается копия образа памяти родительского процесса, разничается лишь PID. В частности, образ памяти дочернего процесса содержит код родительского процесса. Но я думаю, что образ памяти дочернего процесса должен содержать не весь код родительского процесса, а лишь часть его, иначе при его выполнении опять будет выполняться и бесконечный цикл, и уже не нужные type_prompt ( ); read_command(command, parameters);.
Я правильно понимаю?
Sambotey вне форума