2014-04-16 2 views
0

FreeBSD에서 실행중인 스레드의 스케줄링 스키마를 변경하려고합니다. FreeBSD의 기본 스레드 스케줄링은 스레드의 우선 순위를 기반으로하지만 다른 조건으로 변경하려고합니다. 이 스케줄링에 대해 다음 함수 중 어느 것이 sched_ule.c에 tdq_runq_add() 또는 kern_switch.c에 runq_choose()인지 궁금합니다.FreeBSD의 스케줄링 우선 순위 변경

답변

0

이 질문에 대한 대답은 기능이 변경되었습니다 runq_choose(). 이 함수는 실행 대기열에 넣을 스레드를 정확하게 선택해야하는 방법을 보여주기 때문입니다. 다른 함수는 전체 큐 프로세스가 완료되고 있는지 확인합니다. 'tdq_runq_add()'는 시간 공유와 실시간 대기열 간의 협력을 처리하는 데 사용됩니다. 따라서 우선 순위를 변경하려면 runq_choose()을 변경하는 것이 좋습니다.

0

choosethread()/usr/src/sys/kern/kern_switch.c에서 다음에 실행할 트레드를 선택하십시오. 그러면 sched_choose()이 호출됩니다. 사용중인 스케줄러에 따라 (이전 스케줄러의 경우) 또는 /usr/src/sys/kern/sched_ule.c (ULE 스케줄러의 경우 기본값)입니다.

관련 문제