-
[문제해설] 스케줄링 하고자 하는 세 작업의 도착시간과 실행시간은 다음 표와 같다. 이 작업을 SJF로 스케줄링 하였을 때, “작업번호 2”의 종료 시간은? ( 단, 여기서 오버헤드는 무시한다.)전자계산기조직응용기사/필기 기출문제 해설 2021. 8. 11. 05:30반응형
전자계산기조직응용기사 필기 기출문제 해설(4과목 운영체제-SJF 스케줄링) - 2013년1회
스케줄링 하고자 하는 세 작업의 도착시간과 실행시간은 다음 표와 같다. 이 작업을 SJF로 스케줄링 하였을 때, “작업번호 2”의 종료 시간은? ( 단, 여기서 오버헤드는 무시한다.)
작업번호 도착시간 실행시간 1 0 10 2 1 3 3 2 4 가. 3 나. 6
다. 9 라. 13
- 문제해설 -
운영체제가 준비 큐(Queue)에 대기하고 있는 프로세스를 선택하고 CPU에 할당하는 작업을 스케줄링(Scheduling)이라고 합니다. 이러한 스케줄링 알고리즘에는 FCFS(First Come First Served), SJF(Shortest-Job-First), RR(Round Robin), HRN(Highest Response-ratio Next) 등이 있으며, 이러한 스케줄링들은 잘 이해하고 있어야합니다.
이 문제에서 요구하는 SJF(Shortest-Job-First) 스케줄링은 이름 그대로 CPU가 이용 가능해지면, 가장 작은 다음 CPU 버스트(Burst)를 가진 프로세스(process)를 프로세서(processor)에 할당합니다.
스케줄링 문제를 풀때는 바(bar)형태로 일정을 표시하는 간트 차트(Gantt chart)를 활용하면 간단명료합니다.
문제에서 제시된 표의 작업들을 블록으로 나타내보겠습니다.
위 그림은 각 작업을 바(bar)로 나타내였고, 바(bar)의 길이는 그 작업의 실행시간을 나타냅니다.
그럼 도착시간을 고려해여 다시 배치해보겠습니다.
문제에서 병렬 시스템이라는 말이 없으니, CPU는 한번에 하나의 프로세스를 처리할겁니다. 그럼 위 그림처럼 대기큐에 가장 먼저 도착한 '작업1'은 도착했을때 당시엔 대기큐엔 '작업1'만 있으니, SJF 스케줄링이더라도 '작업1'은 바로 실행이 됩니다. 그 다음 시간 1에 '작업2'가 대기큐에 도착하지만, CPU는 '작업1'을 처리중이므로 큐에 계속 대기를 합니다. 그리고 시간 2에 '작업3'도 도착하지만 여전히 CPU는 '작업1'을 처리중이라 대기를 해야됩니다.
작업시간 10이 되면 드디어 CPU는 '작업1'을 종료를 하게되고, 운영체제는 다음 작업을 CPU에게 할당해주기 위해 SJF 스케줄링을 가동시킵니다. 그럼 대기큐에 있는 '작업2'와 '작업3' 중에서 실행시간이 짧은 '작업2'가 실행이 됩니다. '작업2'의 실행시간은 3이므로 시간13에 종료(10+3)가 될것입니다. 그래서 정답은 라 입니다.
CPU 버스트(Burst) : CPU가 작업을 처리하는데 필요한 주기, (간단히 작업 실행에 걸리는 시간이라 생각하시면 됩니다.)
프로세스(process) : CPU가 처리해야하는 하나의 작업
프로세서(processor) : 명령을 처리하는 유닛, (대표적으로 CPU가 있습니다.)
https://youtube.com/playlist?list=PLboXycXmAIDuukQ2A6EvMZI-x1IMy3Xc-
반응형'전자계산기조직응용기사 > 필기 기출문제 해설' 카테고리의 다른 글