5


Soal

Fungsi fork() digunakan untuk membuat child process. Perhatikanlah source code dalam bahasa C berikut. Berapa kalikah “Hello” akan ditampilkan apabila fungsi fork() berhasil?

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main() {
	fork();
	fork();
	fork();
	printf("hello\n");
	return 0;
}

Jawaban

  1. Fork Pertama:
    • 1 proses menjadi 2 proses
  2. Fork Kedua:
    • 2 proses masing-masing fork
    • Menjadi 4 proses
  3. Fork Ketiga:
    • 4 proses masing-masing fork
    • Menjadi 8 proses
      Kata "Hello" akan ditampilkan sebanyak 2³ = 8 kali
      P0
	 /  \
    /    \
   /      \
  P1      P2
 /  \    /  \
P3  P4  P5  P6

Setiap proses akan mencetak "hello" satu kali, sehingga total ada 8 output "hello".