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
- Fork Pertama:
- 1 proses menjadi 2 proses
- Fork Kedua:
- 2 proses masing-masing fork
- Menjadi 4 proses
- 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".