"좋은" 사용자 프로세스와 "좋지 않은" 사용자 프로세스는 정확히 무엇을 의미하나요?

"좋은" 사용자 프로세스와 "좋지 않은" 사용자 프로세스는 정확히 무엇을 의미하나요?

"top" 명령을 사용하여 좋은 값을 찾았습니다. 나는 우선순위에 대해 알고 있으며 좋은 값이 프로세스의 우선순위를 나타내는 방법을 알고 있습니다. 그런데 "좋은" 또는 "좋지 않은"이라는 용어가 무엇을 의미하는지 알 수 없는 것 같습니다.

답변1

에서 인용여기.

이러한 용어는 프로세스의 기본 양호 값이 변경되었는지 여부만 나타냅니다. "niced" 프로세스는 nice 명령으로 실행된 프로세스(또는 renice에 의해 해당 nice가 변경됨)를 의미하고, "un-niced" 프로세스는 nice 명령으로 실행되지 않은 프로세스를 의미합니다. 일반 프로세스(nice 명령으로 실행되지 않거나 나중에 renice PID에 의해 nice 값이 변경되지 않는 프로세스)의 기본 nice 값은 0입니다. 따라서 "un-niced" 프로세스는 nice 값이 0인 프로세스이고 "nice" 프로세스는 nice 값이 != 0인 프로세스입니다.

답변2

"비우호적"이라는 정의는 명확하지 않습니다. 우리는 일반적으로 프로세스의 "좋음"에 대해 이야기합니다.

Niceness 값의 범위는 -20에서 +19까지이며 기본값은 0입니다.

일반 사용자는줄이다프로세스의 우선순위가 높아집니다 nice -n 5 myprogram.

루트 사용자는 다음을 수행할 수 있습니다.더 높은프로세스의 우선순위를 낮추어 "비우호적"으로 만듭니다 nice -n -5 myprogram.

일반 사용자가 부정적인 친절을 사용하려고 하면 무시됩니다.

답변3

Unniced 프로세스는 좋음 수준을 조정하지 않은 프로세스입니다. Niced 프로세스는 다른 프로세스가 더 많은 CPU 점유율을 얻을 수 있도록 미세 조정되었습니다. (실시간 양호함을 사용하면 프로세스가 다른 프로세스에서 CPU를 훔칠 수 있습니다. CPU 집약적인 프로세스에 대해 실시간 양호 수준을 설정하면 다른 프로세스가 정지될 수 있습니다.)

프로세스의 niceness우선순위는 우선순위를 계산하는 요소입니다. 프로세스는 일반적으로 상태 0으로 시작합니다. 장기 실행, 일괄 처리 또는 CPU 집약적인 프로세스를 실행할 때 우선 순위를 낮추고 다른 사용자에게 친숙하도록 양호 값을 설정하는 것이 일반적입니다.

음의 양호 값은 일반 프로세스보다 스케줄링 우선순위가 높기 때문에 실시간 프로세스에 적합합니다. 여러 값을 사용하면 관리자가 실시간 프로세스에 대해 서로 다른 우선 순위를 설정할 수 있습니다.

일반 스케줄링은 실행 대기 중인 우선순위가 가장 높은 프로세스부터 시작하여 라운드 로빈 방식으로 진행됩니다. 우선순위가 낮은 작업이 전체 로드 시에도 일부 시간 조각을 얻을 수 있도록 우선순위 기반 가중치가 있을 수 있습니다.

관련 정보