어떤 프로세스 스케줄러가 사용되고 있는지 확인하는 방법은 무엇입니까? [복사]

어떤 프로세스 스케줄러가 사용되고 있는지 확인하는 방법은 무엇입니까? [복사]

즉, O(1) 스케줄러입니까, CFS 스케줄러입니까, 아니면 이전 스케줄러입니까?

답변1

sched_getscheduler(process_pid)프로세스의 예약 정책을 결정하기 위해 호출할 수 있습니다 .

존재 한다면 /sys/kernel/uidsCFS가 있는 것입니다. 아니면 시도해 볼 수도 있습니다

[[ -n $(awk '$3 == "load_balance_fair" {print;}' < /proc/kallsyms) ]] && 
  echo CFS

O(1) 스케줄러와 다른 오래된 스케줄러를 구별하는 방법을 잘 모르겠습니다. 내 생각에 커널 버전을 사용할 수는 있지만 배포판은 자신이 출시하는 커널에 패치를 적용하므로 이는 신뢰할 수 없습니다.

답변2

프로그래머는 이 함수 man sched_setscheduler를 사용하여 프로세스의 스케줄러를 정의할 수 있습니다.

프로세스에서 사용하는 스케줄러를 보려면 top 명령을 사용할 수 있습니다.

프로세스 차트 변경을 위한 스케줄러

관련 정보