이 중 주로 대기 시간, 응답 시간, 반환 시간을 성능의 지표로 쓴다. (CPU 사용률, 처리량은 측정하기 어렵다.)
먼저온 순서대로 처리하는 방식으로 구현이 간단하다. 최근 시스템에서 FCFS 스케줄링은 주요 방법이 아니라 다른 방법과 결합하여 쓰이고 있다.
ex) 테이블이 하나만 있는 레스토랑
문제점 :
Ready queue에서 작업 시간이 가장 짧은 프로세스부터 CPU를 할당한다. convoy effect을 해결하였다. 선점 방식으로도 사용될 수 있는데 SRF(Shortest Remaining Time First) 또는 SRTF라고 불린다.
문제점 :
해결책:
aging기법을 통해 해결 가능, 하지만 에이징의 기준을 정해야 하는 문제가 있다.
+) aging 기법 : 오랫동안 기다린 프로세스에게 카운트를 사용해 우선순위를 높여줌으로서 처리하는 기법
프로세스의 대기시간과, CPU 사용 시간을 같이 고려하여 스케줄링 우선순위를 정하는 방식이다. 에이징 기법이 알고리즘에 포함되어 sjf의 아사현상을 완화
우선순위 = (대기시간 + CPU 사용 시간) / (CPU 사용 시간)
문제점
우선순위가 가장 높은 프로세스에게 CPU 를 할당하는 스케줄링이다. 우선순위란 정수로 표현하게 되고 우선순위가 같다면 FIFO방식으로 동작
선점형과 비선점형 둘 다 가능하며 비선점형은 더 높은 우선순위의 프로세스가 오면 ready queue의 head에 추가된다.
문제점 :
해결책:
+)
FCFS방식으로 프로세스들이 보내지면 각 프로세스는 동일한 시간의 Time Quantum 만큼 CPU를 할당 받아 실행되고 ready queue tail로 돌아가는 선점 방식이다. CPU 사용시간이 랜덤한 프로세스들이 섞여있을 경우에 효율적이다. 공정하며(우선순위가 없다.) 응답시간이 빠른 현대적인 CPU 스케줄링
+) Time Quantum or Time Slice : 실행의 최소 단위 시간
문제점 :
기본적으로 RR스케줄링 이지만, CPU를 할당받을 프로세스를 정할 때 잔여 실행 시간이 가장 짧은 프로세스 CPU를 할당. 대화형 운영체제에 유용하며 SJF보다 평균 대기시간이나 평균 반환시간에서 효율적이다.
문제점 :
SJF와 동일하게 starvation문제와 선점을 위한 문맥 교환되어야 하므로 SJF보다 오버헤드가 더 크다.
프로세스 성격에 따라 ready queue를 여러개로 분리하고 각 queue는 우선순위를 가지며 프로세스는 최초에 배정된 queue를 벗어나지 못한다. 프로세스가 들어왔을 때, 어떤 큐에게 보내야되는지 결정하는 메커니즘이 필요하다.
빠른 응답을 필요로 하는 대화형 작업(전위 큐)과 그렇지 않는 작업(후위 큐)으로 나눠서 프로세스를 ready queue에 분배 한다. 전위 큐에서는 빠른 응답시간을 위해 보통 RR을 사용하고 후위 큐에서는 응답 시간보다 계산 위주이기 때문에 FCFS를 사용해 오버헤드를 줄이도록 한다.
우선순위가 낮은 큐에서 기아 현상이 발생 할 수 있으므로 우선 순위가 높은 큐에는 작은 Time Quantum을, 낮은 큐에는 큰 Time Quantum을 할당한다.
문제점
+) 보통의 우선순위
1. 실시간 프로세스
2. 시스템 프로세스
3. 대화형 프로세스
4. 배치 프로세스
MLQ와 동일하지만 프로세스는 최초에 배정된 queue를 벗어날 수 있다. 프로세스가 time slice내에 작업이 끝나면 한단계 낮은 큐로 내려 보낸다. 반대로 어떤 큐에서 일정시간내에 작업이 실행되지 못하면 한단계 높은 큐로 프로세스를 이동시킨다. 이를 통해 MLQ의 단점인 starvation문제를 해결할 수 있다.
변동 우선순위 알고리즘의 전형적인 예이며 프로세스의 다양한 성격을 반영해 구현할 수 있다.
ex) 가장 마지막 큐에 있는 프로세스는 무한대의 타임 슬라이스를 얻을 수 있다.(FCFS 방식과 동일)
문제점