Multilevel Queue Scheduling
하나의 스케쥴링으로 모든 것을 해결할 수 없으니, 여러개의 스케쥴링 방식을 쓴다.
서로 다른 큐를 놓고, 프로세스가 만들어질 때 해당하는 클래스의 큐에 넣는다.
단점: starvation이 발생할 수 있다. 그래서 큐 간에 Time Slice를 설정한다.
Multilevel Feedback Queue
Proportional Share Scheduling
Lottery Scheduling
N개의 복권을 만든다.
많이 실행될 것같은 프로세스에게 복권을 더 준다.
랜덤으로 복권을 선택하면 해당 프로세스를 선택한다.
CFS Scheduling
리눅스에서 사용하는 스케쥴링이다.
공정하게 프로세스마다 Time Slice를 둔다.
Priority가 높은 프로세스를 CPU에 할당한다.
RB Tree를 사용한다.
모든 Time Slice가 0이되면 새로운 Time Slice 부여한다.
SMP
장점: 동일한 메모리구조를 가지므로 작업분배가 쉽다.
단점: CPU가 많아질 수록 메모리 병목현상이 나타나기 쉽다.
AMP
장점: 작업에 맞는 CPU코어를 선택하여 최적의 성능을 낼 수 있다.
단점: CPU가 특정작업에 고정되어있으면 유연성이 떨어지고 효율적인 자원 사용이어렵다.
[참고] Operating Systems Three Easy Pieces/Remzi H.Arpaci-Dusseau/ CreateSpace Publishing