본문 바로가기

Programming/Algorithm

SJF scheduling 최단 작업 우선 스케줄링

반응형

의미 : SJF(Shortest Job First) - 작업시간이 가장 작은 작업부터 처리하는 스케줄링 기법.

시작 : 기본 스케줄링 기법인 FCFS(First Come First Served)의 단점(대기시간이 길어질 수도 있음)을 보완한 스케줄링 기법.

특징 :

  • 작업시간이 작은 작업을 우선적으로 처리하므로 자연스럽게 뒤에 남아있는 작업들의 대기시간이 줄어든다.
  • 동시에 작업시간이 긴 작업들은 처리되지 못하는 기아상태(starvation)가 발생할 수 있다.
  • 실제환경에선 적용이 어렵다는 특징이 있다. (처리해야 할 작업들의 작업시간을 모두 알고 있다는 가정하에 가능한 스케줄링인데 실제론 요청이 들어오기 전까진 작업시간을 알 수가 없으므로)
  • 선점/비선점 방식 모두 구현 가능하다.
    • 선점방식으로 구현한 SJF를 SRTF(Shortest Remaining Time First)라고 부르는데 작업 중 우선순위가 더 높은(작업시간이 더 작은) 작업이 들어오면 하던작업을 멈추고 교체한다.
      자연스럽게 교체시 Context switching이 발생하므로 어떤것이 더 효율적인지는 작 업셋의 특징에 따라 다를 것이다.
    • context switching을 고려할 필요가 거의 없고 작업들에 대한 정보를 사전에 알고 시작하는 알고리즘 문제풀이에선 SRTF로 풀이하는 경우가 제법 있는 것 같다.

 

반응형