답변:
자식 프로세스 nice
는 분기 될 때 부모가 보유한 모든 값을 상속받습니다 (예 :) 5
.
그러나 nice
하위 프로세스를 분기 한 후 상위 프로세스 의 값이 변경되면 하위 프로세스는 새 nice
값을 상속하지 않습니다 .
모니터링 도구를 사용하여이를 쉽게 관찰 할 수 있습니다 top
. 는 IF nice
필드 (NI)가 기본적으로 표시되지 않습니다, 당신은 눌러 추가 할 수 있습니다 f
및 선택 I
. NI
열이 top
디스플레이에 추가 됩니다.
* 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
좋은 정보 man 2 fork
fork ()는 호출 프로세스를 복제하여 새 프로세스를 작성합니다. 자식이라고하는 새로운 프로세스는 다음 사항을 제외하고는 부모라고하는 호출 프로세스의 정확한 복제입니다.
- 하위에는 고유 한 프로세스 ID가 있으며이 PID는 기존 프로세스 그룹의 ID (setpgid (2))와 일치하지 않습니다.
- 자녀의 부모 프로세스 ID는 부모의 프로세스 ID와 동일합니다.
- 자식은 부모의 메모리 잠금을 상속하지 않습니다 (mlock (2), mlockall (2)).
- 프로세스 자원 이용률 (getrusage (2)) 및 CPU 시간 카운터 (times (2))는 하위에서 0으로 재설정됩니다.
- 자식의 보류중인 신호 세트는 처음에 비어 있습니다 (sigpending (2)).
- 자식은 부모로부터 세마포어 조정을 상속하지 않습니다 (semop (2)).
- 자식은 부모 (fcntl (2))의 레코드 잠금을 상속하지 않습니다.
- 자식은 부모로부터 타이머를 상속받지 않습니다 (setitimer (2), alarm (2), timer_create (2)).
- 하위는 상위 (aio_read (3), aio_write (3))에서 미해결 비동기 I / O 작업을 상속하지 않으며 상위에서 비동기 I / O 컨텍스트를 상속하지 않습니다 (io_setup (2) 참조).
fork
구현 에서는 하위 프로세스가 값을 상속합니다 .