一个进程执行以下代码段:
for(i = 1; i < = n; i++)
fork ();
创建的新进程数是
(A) n
(B) ((n(n + 1))/2)
(C) 2 n – 1
(D) 3 n – 1答案: (C)
解释:
fork (); // Line 1
fork (); // Line 2
fork (); // Line 3
.....till n
L1 // There will be 1 child process created by line 1
/ \
L2 L2 // There will be 2 child processes created by line 2
/ \ / \
L3 L3 L3 L3 // There will be 4 child processes created by line 3
........
我们也可以使用直接公式来获取子进程的数量。
对于 n 个 fork 语句,总是有 2 n – 1 个子进程。另请参阅此帖子以获取更多详细信息。
这个问题的测验