스케줄러(scheduler)의 역할

CPU가 놀지 않도록 CPU에서 실행될 프로세스를 선택하는 역할. (프로세스는 ready queue에서 대기중)
디스패처(dispatcher)의 역할
스케쥴러에 의해 선택된 프로세스를 CPU에서 실행될 수 있도록 하는 역활 (CPU에 할당)
- Context Switching
- Kernel Mode에서 User Mode로 전환
스케쥴링 방식 (선점 vs 비선점)
nonpreemptive scheduling (비선점 스케쥴링)

- 프로세스가 자발적으로 Running 상태에서 빠져나가는 것
- 신사적, 협력적(cooperative), 느린 응답성
preemptive scheduling (선점 스케쥴링)

- 스케쥴러가 프로세스에 개입하는 것
- 적극적, 강제적, 빠른 응답성, 데이터 일관성 문제
스케줄링 알고리즘
스케줄링 알고리즘 : FCFS(First-Come, First-Served)
먼저 도착한 순서대로 처리
스케줄링 알고리즘 : SJF(Shortest-Job-First)
프로세스의 다음 CPU Burst가 가장 짧은 프로세스 부터 실행
스케줄링 알고리즘 : SRTF(Shortest-Remaining-Time-First)
남은 CPU burst가 가장 짧은 프로세스부터 실행
스케줄링 알고리즘 : priority
우선순위가 높은 프로세스부터 실행
스케줄링 알고리즘 : RR(Round-Robin)
time slice로 나뉘어진 CPU time을 번갈아가며 실행
스케줄링 알고리즘 : Multilevel queue
프로세스들을 그룹화해서 그룹마다 큐를 두는 방식