Un proceso secundario hereda cualquier nice
valor que tenga el padre en el momento en que se bifurca (en su ejemplo 5
).
Sin embargo, si el nice
valor del proceso primario cambia después de bifurcar los procesos secundarios, los procesos secundarios no heredan el nuevo nice
valor.
Puede observar esto fácilmente con la herramienta de monitoreo top
. Si el nice
campo (NI) no se muestra por defecto, puede agregarlo presionando f
y eligiendo I
. Esto agregará la NI
columna a la top
pantalla.
* 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
Buena información de man 2 fork
fork () crea un nuevo proceso duplicando el proceso de llamada. El nuevo proceso, denominado hijo, es un duplicado exacto del proceso de llamada, denominado padre, excepto por los siguientes puntos:
- El hijo tiene su propia ID de proceso única, y este PID no coincide con la ID de ningún grupo de proceso existente (setpgid (2)).
- La ID del proceso principal del niño es la misma que la ID del proceso principal.
- El hijo no hereda los bloqueos de memoria de sus padres (mlock (2), mlockall (2)).
- Las utilizaciones de recursos de proceso (getrusage (2)) y los contadores de tiempo de CPU (tiempos (2)) se restablecen a cero en el elemento secundario.
- El conjunto de señales pendientes del niño está inicialmente vacío (señalización (2)).
- El niño no hereda los ajustes del semáforo de su padre (semop (2)).
- El hijo no hereda los bloqueos de registro de su padre (fcntl (2)).
- El hijo no hereda los temporizadores de su padre (setitimer (2), alarm (2), timer_create (2)).
- El hijo no hereda operaciones de E / S asíncronas pendientes de su padre (aio_read (3), aio_write (3)), ni hereda ningún contexto de E / S asíncrono de su padre (consulte io_setup (2)).
fork
implementación sensata .