스케줄링 개요
- 워크로드(workload): 일련의 프로세스들이 실행되는 상황
- 스케줄링 평가 항목(scheduling metric)
반환 시간(turnaround time)
공정성(fairness)
응답시간(response time)
선입선출 (First In First Out, FIFO)
- 먼저 들어온 것을 먼저 처리한다.
- 단순하고 구현하기 쉽지만, convoy effect가 발생할 수 있다.
- convoy effect: 짧은 시간 동안 자원을 사용할 프로세스들이 자원을 오랫동안 사용하는 프로세스의 종료를 기다리는 현상을 말한다.
최단 작업 우선(Shortest Job First, SJF)
- 가장 짧은 실행 시간을 작업을 먼저 실행시킨다.
- 모든 작업이 동시에 도착한다면 SJF가
최적(optimal)
을 보장한다.
- 오래 걸리는 작업이 큐에 먼저 도착한 경우 이전의 convoy effect가 다시 발생한다.
최소 잔여시간 우선(Shortest Time-to-Completion Fisrt, STCF)
- 언제든 새로운 작업이 시스템에 들어오면, 스케줄러는 남아 있는 작업과 새로운 작업의 잔여 실행 시간을 계산하고 그 중 가장 적은 잔여 실행 시간을 가진 작업을 스케줄한다.
라운드 로빈(Round-Robin, RR)
- 일정 시간 동안 실행한 후 실행 큐의 다음 작업으로 전환한다.
- 시분할 컴퓨터의 등장으로 상호작용을 원할하기 위한 성능을 요구하게 되고, 응답 시간(response time)이라는 새로운 평가기준이 필요하게 되었다.
- 작업이 실행되는 일정 시간을 타임 슬라이스(time slice) 또는 스케줄링 퀀텀(scheduling quantum)이라 부른다.
- 타임 슬라이스가 짧을수록, 응답 시간 기준으로 RR의 성능은 더 좋아진다. 하지만 너무 짧게 하면, 문맥 전환 비용이 전체 성능에 큰 영향을 미치게 된다.
스케줄링의 두가지 접근법
- 남아 있는 작업 중 실행 시간이 제일 짧은 시간을 수행하고, 반환시간을 최소화한다. (CPU-집중-작업들에 유리)
- 모든 작업을 번갈아 실행시키고 응답 시간을 최소화한다. (대화형-작업들에 유리)
참고자료