top 및 htop에서 우선순위가 가장 높은 스레드가 RT로 표시되는 이유는 무엇입니까?

top 및 htop에서 우선순위가 가장 높은 스레드가 RT로 표시되는 이유는 무엇입니까?

top및 도구에서는 htop실시간 우선순위(사용자 모드 API 관점에서 99)가 가장 높은 프로세스(또는 표시 설정에 따라 스레드)와 예약 정책 SCHED_RR또는 SCHED_FIFO우선순위가 로 표시됩니다 RT.

다른 모든 실시간 프로세스의 경우 우선순위는 숫자 p로 표시되며 다음과 같이 정의됩니다.

p = -userprio -1 

왜 가장 우선순위가 높은 라이브 프로세스가 표시 top되지 않는지 궁금합니다 .htop-100

답변1

왜 top 및 htop이 최우선 순위 실시간 프로세스에 -100을 표시하지 않는지 알고 싶습니다.

이는 1-99 범위의 고정 우선순위가 있기 SCHED_RR때문 입니다.SCHED_FIFORT에 대한 RedHat MRG 문서

실시간 우선순위의 경우 순서가 반대입니다. 일반적인 "낮을수록 좋음"과 달리 99가 실제로 가장 높습니다.

귀하의 의견을 토대로 귀하의 질문을 오해했습니다. 죄송합니다.

상단에는 열이 하나만 있으므로 RT 우선순위는 다른 우선순위와 구별할 수 없습니다. 이 문제를 해결하기 위해 "rt"를 사용하여 이러한 프로세스에 실시간 스케줄러 클래스를 사용하도록 지시합니다.

를 사용하면 차이점을 확인할 수 있습니다 ps ax --format uname,pid,ppid,tty,cmd,cls,pri,rtprio. 그러면 2개의 열이 제공됩니다. 하나는 prio용이고 다른 하나는 rtprio용입니다.

참고 사항: 위 명령은 cls프로세스에서 사용하는 스케줄러 클래스(필드)도 표시합니다.

관련 정보