![어떤 프로세스 스케줄러가 사용되고 있는지 확인하는 방법은 무엇입니까? [복사]](https://linux55.com/image/22452/%EC%96%B4%EB%96%A4%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%20%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC%EA%B0%80%20%EC%82%AC%EC%9A%A9%EB%90%98%EA%B3%A0%20%EC%9E%88%EB%8A%94%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
즉, O(1) 스케줄러입니까, CFS 스케줄러입니까, 아니면 이전 스케줄러입니까?
답변1
sched_getscheduler(process_pid)
프로세스의 예약 정책을 결정하기 위해 호출할 수 있습니다 .
존재 한다면 /sys/kernel/uids
CFS가 있는 것입니다. 아니면 시도해 볼 수도 있습니다
[[ -n $(awk '$3 == "load_balance_fair" {print;}' < /proc/kallsyms) ]] &&
echo CFS
O(1) 스케줄러와 다른 오래된 스케줄러를 구별하는 방법을 잘 모르겠습니다. 내 생각에 커널 버전을 사용할 수는 있지만 배포판은 자신이 출시하는 커널에 패치를 적용하므로 이는 신뢰할 수 없습니다.
답변2
프로그래머는 이 함수 man sched_setscheduler를 사용하여 프로세스의 스케줄러를 정의할 수 있습니다.
프로세스에서 사용하는 스케줄러를 보려면 top 명령을 사용할 수 있습니다.
프로세스 차트 변경을 위한 스케줄러