정보처리산업기사 필기시험에 출제된 문제 중 프로세스 스케줄링기법에 대한 문의가 있어 답변으로 작성한 내용을 블로그에 남깁니다.
질문 받은 문제는 2015년 5월 31일 시행 한국산업인력공단 기술계(기사, 산업기사 등급) 및 서비스계 국가기술자격 2회 필기시험 종목 중 정보처리산업기사 74번에 출제된 SJF(Shortest Job First) 기법의 평균대기시간 계산문제입니다.
해당 문제는 아래와 같습니다.
74. SJF(Shortest Job First) 스케줄링에서 작업 도착 시간과 CPU 사용시간은 다음 표와 같다. 모든 작업들의 평균 대기시간은 얼마인가?
정보처리산업기사필기시험  2015년 2회 74번 보기
① 15   ② 16   ③ 24   ④ 25
아래는 위 문제 해설입니다.
[문제 해설]
CPU 스케줄링 기법 중 SJF(Shortest Job First scheduling) 기법은 준비상태에 대기 중인 작업 중 CPU 사용시간이 가장 적은 프로세스부터 처리하는 기법입니다.
문제에 제시된 작업 중 작업 1이 준비상태에 도착했을 때 아무런 작업도 준비상태 큐에 없으므로 곧바로 CPU를 사용하므로 대기시간은 0입니다.
그런데 작업 1의 CPU 사용시간은 23인데 작업 2의 도착시간은 3, 작업 3의 도착시간은 8이므로 작업 1이 종료되기 전에 작업 2와 작업 3이 준비상태에 도착해 있으므로, 이때 SJF 스케줄링 기법에서 CPU 사용시간이 적은 작업을 먼저 수행하게 되므로 작업 3부터 수행한 후 작업 2를 수행하게 되는 것입니다.
따라서 평균 대기시간을 구하면 아래와 같습니다.
▶ 작업 1 대기시간 : 도착 즉시 수행되므로 0
▶ 작업 2 대기시간 : 작업 1의 수행 후 작업 3이 수행된 후 수행되므로 23+10-3 = 30 ∴ (작업 1의 CPU 사용시간 + 작업 3의 CPU 사용시간 - 도착시간)
▶ 작업 3 대기시간 : 작업 1과 수행 후 실행되므로 23-8 = 15 ∴ (작업 1의 CPU 사용시간 - 도착시간)
▶ 평균 대기시간 = (0+30+15) / 3 = 15