SJF(최단 작업 우선)
실행에 필요한 시간이 가장 짧은 프로세스를 우선적으로 처리하는 스케줄링 방식으로, 평균 대기 시간을 줄이는 데는 효과적이지만 실행 시간을 미리 알기 어렵다는 한계가 있습니다.
한눈에 보는 정의
SJF(Shortest Job First, 최단 작업 우선)는 준비 큐에 있는 프로세스 중 실행에 필요한 시간이 가장 짧은 것부터 먼저 처리하는 CPU 스케줄링 방식입니다.
자세히 알아보기
- 예문: "SJF는 이론적으로 평균 대기 시간을 가장 짧게 만드는 스케줄링 방식으로 알려져 있다."
- FCFS(선착순 처리) (선착순 처리)와 달리 처리 시간이 짧은 작업을 먼저 끝내기 때문에, 전체 프로세스들의 평균 대기 시간이 줄어드는 효과가 있습니다.
- 실제로는 프로세스가 얼마나 걸릴지 실행 전에 정확히 알기 어려워, 과거 실행 이력을 바탕으로 예측치를 추정해 사용하는 경우가 많습니다.
- 짧은 작업이 계속 새로 들어오면 실행 시간이 긴 작업은 계속 뒤로 밀리는 '기아 상태(Starvation)'가 발생할 수 있다는 단점이 있습니다.