2014-01-24 2 views
0

Привет, я делаю упражнения по концепциям операционной системы. 9-е издание. Глава 3: «Сколько процессов создано, включая родительский процесс»? вопрос меня смущает. Код находится в C с системным вызовом Unix, fork():Unix fork: сколько процессов создано?

#include <stdio.h> 
#include <unistd.h> 

int main(){ 

fork(); 
fork(); 
fork(); 

return 0; 
} 

Как любой собеседник может ответить на вопрос? Благодаря

+0

Что с этим связано? Вы, кажется, поняли это. –

+0

просто процесс, созданный fork, равен 2^n, где n = нет вызовов fork. –

ответ

0

Я предполагаю, что это 8, как 1 -> 2 -> 4 -> 8

+0

Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы будете быть в состоянии [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). – hkf

+0

@hkf Этот ответ от OP, поэтому я не думаю, что это критика или просьба о разъяснении. ОП должен был включить догадку в вопрос. –

+0

@JimBalter Сколько процессов создано, как вы думаете? – Jun

2
fork(); 

первая вилка создана новый процесс от процесса (основной) работает. в системе теперь есть два процесса

fork(); 

Каждый из обоих процессов снова вызывает fork. Итак, появился два новых процесса. Таким образом, всего четыре процесса в настоящее время находятся в системе

fork(); 

Теперь каждый из четырех процессов вызывает fork. поэтому снова возникло четыре новых процесса. поэтому итоговый восьми процесс создается после последнего вызова fork();

Смежные вопросы