단어 그대로 프로세스들을 스케쥴링하는 것이 Process Scheduling이다. 아래 그림에서 어떤 Process(여기 과제에서는 스레드 = 프로세스)가 Ready, Run, Sleep이 일어나야 하는지 정해주는 것이라고 할 수 있다.
현재 진행 중인 pintOS 과제는 라운드 로빈 스케쥴링(Round Robin Scheduling)으로 프로세스들이 실행되고 있다.
라운드 로빈 스케줄링(Round Robin Scheduling, RR)은 시분할 시스템을 위해 설계된 선점형 스케줄링의 하나로서, 프로세스들 사이에 우선순위를 두지 않고, 순서대로 시간단위(Time Quantum)로 CPU를 할당하는 방식의 CPU 스케줄링 알고리즘이다.
보통 시간 단위는 10 ms ~ 100 ms 정도이다. 시간 단위동안 수행한 프로세스는 준비 큐의 끝으로 밀려나게 된다. 문맥 전환의 오버헤드가 큰 반면, 응답시간이 짧아지는 장점이 있어 실시간 시스템에 유리하다.
출처 : 위키백과
pintOS에서 기본으로 제공되는 Round Robin Scheduling은, 시간의 흐름에 따라 cpu를 점유하는 비선점 스케줄링이라고 할 수 있다.
다음에 할 과제는 이제 우리가 각 스레드들의 우선순위에 따라 배정해주도록 스케쥴링을 짜는 것이다.