스케줄러란
OS로부터 할당 받는 프로세스를 효율적으로 다루어주는 시스템이다.
스케줄러 알고리즘은 여러가지가 존재한다.
- FIFO(First In First Out)

자료구조의 큐와 같다.
먼저 들어온 process부터 실행하는 시스템
- SJF (Short Job First)

실행시간이 짧은 프로세스부터 실행하는 시스템이다.
프로세스의 시간을 미리 예측하는 것은 쉽지 않기 때문에 이상적인(한계적인) 방법이다.
실행시간이 긴 프로세스는 더욱 느리게 실행되는 이슈가 있다. 그래서 aging을 통해 기아현상을 해결할 수 있다.
- Priority-based

프로세스에 우선순위를 매겨, 실행하는 시스템이다.(높은 순 또는 낮은순)
예를들어 카카오톡 실행을 뒤로 미루고 먼저 Intelij부터 실행하게 설정하여 Intelij부터 실행하게 된다.
즉, 미리 우선순위를 지정해야 한다.
- Round-Robin

프로세스를 일정한 시간 단위동안만 번갈아가며 프로세스를 실행하는 방식으로 가장 공평하다.
이런 방안은 오랫동안 실행되는 프로세스로인해 다른 것들 또한 멈춰야하는 릴레이 현상으로부터 출현되었다.
한편으로 문맥교환의이 자주 일어나는 이슈가 있다.