2016-10-17 2 views
1

Я новичок в операционной системе и просматриваю свои заметки для своего класса ОС, и это заданный вопрос. Я пытался рассчитать, сколько всего процессов, созданных путем чтения, до обсуждения this.Сколько процессов будет создано fork() exec()

Вопрос Дано:
Сколько процессов будут созданы (включая родительский), если все вилки()/система Exec() вызывает в следующей программе успешен. Предположим, exec'ed программа не делает fork().

Main(){ 
    int ii = fork(); 
    if (ii == 0) exec(); 
    fork(); 
} 

Ответ:
Общее число процессов = 3

На основе обсуждения (страницы, которые я включил выше), у меня есть следующие процессы

Main(){     //Main program is consider as 1 process 
    int ii = fork();  //fork #1, now I have 2 total processes 
    if (ii == 0) exec(); 
    fork();    //fork #2, now I have 4 total processes 
} 

Так что у меня есть 4 процесса вместо 3?

ответ

0

У вас есть 4 процесса.

Это также легко проверяется на вашем любимом языке с помощью вашего любимого компилятора. Просто напечатайте что-то после последней вилки.

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