SJF스케줄링에서 예측기능에 대해 질문
글쓴이: coleea / 작성시간: 일, 2015/04/12 - 10:11오전
SJF스케줄링이란 게 프로세스들의 총 실행시간(burst time?)을 미리 알지 못하기 때문에 실행시간을 예측해서 각 프로세스에 priority를 매겨서 그 우선순위대로 실행하는 거라고 알고있습니다. 실행시간을 예측하는 공식이 있던데요, 이 공식을 어떤 프로세스에게 적용해서 어느 프로세스의 실행시간을 예측하는 건가요? 예를 들어 현재 ready queue에 3개의 프로세스가 대기중이라고 가정하면, 어떤 프로세스에 이 공식을 적용하는 건가요? 모든 프로세스에 전부 공식을 적용하면 예측시간이 모두 다 같은 값이 나올 것이기 때문에 의미가 없을 것이고 당연히 하나의 프로세스를 정해서 해야하는데 혹시 ready queue에 도착한 순서대로 공식을 적용하는 건가요?
그리고 이건 여담인데, 'tn+1 = aTn + (1 - a)tn'이라는 공식으로 프로세스의 실행시간 예측이 되나요? 가령 이전에 프린트 인쇄 프로그램으로 종이 한장을 인쇄하는데 1분이 걸렸다면 이걸 기준으로 다음에 실행될 프로세스의 시간을 예측하는 건데, 이후에 게임을 실행시켜서 5시간 할 수도 있는거고 비주얼 스튜디오 실행시켜서 밤새서 코딩할 수도 있는건데 이런 경우는 예측이 전혀 안되서 스케줄링이 전혀 효과적으로 작동하지 않을 거 같은데요, 그러면 SJF는 실제로 효용성이 떨어지는 것 아닌가요? 아니면 현재 SJF를 사용하는 OS가 있나요?
Forums:
댓글 달기