Proses anak mewarisi nice
nilai apa pun yang dipegang oleh orang tua pada saat itu bercabang dua (dalam contoh Anda, 5
).
Namun, jika nice
nilai proses induk berubah setelah forking proses anak, proses anak tidak mewarisi nilai baru nice
.
Anda dapat dengan mudah mengamati ini dengan alat pemantauan top
. Jika nice
bidang (NI) tidak ditampilkan secara default, Anda dapat menambahkannya dengan menekan f
dan memilih I
. Ini akan menambahkan NI
kolom ke top
tampilan.
* I: NI = Nice value
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1937 root 20 0 206m 66m 45m S 6.2 1.7 11:03.67 X
Informasi bagus dari man 2 fork
fork () menciptakan proses baru dengan menduplikasi proses panggilan. Proses baru, disebut sebagai anak, adalah duplikat yang tepat dari proses panggilan, disebut sebagai orang tua, kecuali untuk hal-hal berikut:
- Anak memiliki ID proses uniknya sendiri, dan PID ini tidak cocok dengan ID dari grup proses yang ada (setpgid (2)).
- ID proses orang tua anak sama dengan ID proses orang tua.
- Anak tidak mewarisi kunci memori orang tuanya (mlock (2), mlockall (2)).
- Pemanfaatan sumber daya proses (getrusage (2)) dan penghitung waktu CPU (kali (2)) diatur ulang ke nol pada anak.
- Set sinyal pending anak pada awalnya kosong (sigpending (2)).
- Anak tidak mewarisi penyesuaian semaphore dari induknya (semop (2)).
- Anak tidak mewarisi kunci rekaman dari induknya (fcntl (2)).
- Anak tidak mewarisi timer dari induknya (setitimer (2), alarm (2), timer_create (2)).
- Anak tidak mewarisi operasi I / O asinkron yang luar biasa dari induknya (aio_read (3), aio_write (3)), juga tidak mewarisi konteks I / O asinkron dari induknya (lihat io_setup (2)).
fork
implementasi yang masuk akal .