요약
- CPU 스케줄링과 관련된 Naive한 구현에는 FIFO, SJF, 최소 잔여시간 우선
본문
- 워크로드에 대한 가정
- 모든 작업은 같은 시간동안 실행된다.
- 모든 작업은 동시에 도착한다.
- 각 작업은 완료될 때까지 실행된다.
- 모든 작업은 CPU만 사용한다.
- 각 작업의 실행시간은 사전에 알려져 있다.
- 비현실적이긴하지만 논의하는데는 문제가 없음
- 스케줄링 평가항목
- 반환시간: 작업이 완료된 시각에서 작업이 시스템에 도착한 시각을 뺀 시간
- 반환시간은 성능 측면에서의 평가기준
- 동시에 도착한다는 가정하에, 반환시간은 완료된 시각
- 알고리즘
- 선입 선출(FIFO)
- 앞쪽 작업이 길면 평균 반환시간이 안좋아짐(convoy effect)
- 최단 작업 우선(SJF, Shortest Job First)
- FIFO의 문제를 해결했지만, 가정중에서 모든 작업이 동시에 도착하지 않는 경우 다시 FIFO같은 문제가 생김
- A: 100, B:10 , C: 10, B와 C가 늦게 도착하는경우
- FIFO의 문제를 해결했지만, 가정중에서 모든 작업이 동시에 도착하지 않는 경우 다시 FIFO같은 문제가 생김
- 최소 잔여시간 우선
- 작업의 실행시간이 알려져 있기 때문에, 작업 종료까지 남은시간이 적은 순서대로 처리하면 최단 작업 우선에서 발생하는 문제를 해결할 수 있음
- 선입 선출(FIFO)