리눅스 공부를 하다가 충격 사실을 알게되었다.
nice bash
라는 명령어가 있다.
프로그램의 우선순위를 조정하여 실행하는 명령어
한마디로 CPU 시간 할당조절 기능명령어이다.
옵션으로 -19 ~20 까지의 숫자를 쓰는데 이것이 우선순위 조정값이다.
낮은 숫자가 더 빠른 우선순위이다.
<< 사용방법 >>
nice 값의 범위가 -20부터 19까지이고
일반사용자 : 1~19 사용가능 + 실행중인 프로세스 값 낮출 수 없음 ( 우선순위 높이기 금지)
root : 전체 범위(-20 ~ 19) 사용가능 + 실행 중인 프로세스의 nice 값을 자유롭게 변경
# 기본 우선순위보다 10 낮게 명령 실행
nice -n 10 ./my_program
# 높은 우선순위로 실행 (루트 권한 필요)
sudo nice -n -15 ./important_program
사실 이얘기를 하려던게 아니다.
'nice' 이름은 "예의 바르다"라는 의미에서 왔다고 한다. 이 명령어는 프로세스가 "예의 바르게" 다른 프로세스들과 CPU 자원을 공유할 수 있도록 해주기 때문! 프로세스가 "nice하게" 행동한다는 것은 다른 프로세스들에게 CPU 자원을 양보한다는 의미라는데...
솔직히 설득력이 1도 없다고 생각하던 와중에

나만 몰랐던 이야기였음을 알게됐다.
Unix 시스템에서 "nice value"라는 개념은 1970년대부터 있었는데, 이 값이 높을수록(양수 값이 클수록) 해당 프로세스는 "더 친절하게(nicer)" 행동한다고 본다.
즉, CPU 우선순위를 낮추어 다른 프로세스들이 더 많은 처리 시간을 가질 수 있게 양보하는 것.
따라서 "nice" 값이 높은 프로세스는 시스템의 다른 프로세스들에게 "친절하게" 행동하는 셈입니다...
반면에 "nice" 값이 낮은(음수인) 프로세스는 "덜 친절하게" 행동하며 CPU 시간을 더 많이 차지한다는 것입니다..
이제 절대 명령어 잊어먹지않겠죠? ^_^