Рубрики

ВОРОТА | GATE-IT-2004 | Вопрос 64

Процесс выполняет следующий сегмент кода:

 for(i = 1; i < = n; i++)

fork (); 

Количество созданных новых процессов

(A) n
(B) ((n (n + 1)) / 2)
(С) 2 n — 1

(D) 3 n — 1

Ответ: (с)
Объяснение:

  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 дочерних процессов. Также см. Этот пост для более подробной информации.
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-IT-2004 | Вопрос 64

0.00 (0%) 0 votes