CS/운영체제

7. Scheduling : Introduction

twfnm67 2019. 11. 4. 11:53

운영체제 개념에서 가장 중요하다고 생각되는 몇 가지 주제 중 하나 scheduling


7.1 Workloak Assumption

  1. 모든 작업의 수행 시간은 동일하다.

  2. 모든 작업은 같은 시각에 도착한다.

  3. 모든 작업은 CPU 사용만을 필요로 한다(즉, 입출력 요구 등 없음)

  4. 모든 작업의 런타임은 사전에 알 수 있다.

 - 이 네 가지 사항을 가정한 상태에서 스케줄링 policy 개념을 시작


7.2 Scheduling Metrics

 - 스케줄링을 하는 데에 필요한 평가 지표(metric)로써 반환시간(turnaround time)을 이용

 - T_turnaround=T_completion-T_arrival

 - 가정 2에 의해, T_turnaround=T_completion이 됨


7.3 First In, First Out(FIFO)

출처 : Operating Systems_Three Easy Pieces

 - 세 개의 작업 A, B, C가 A --> B --> C의 순서로 도착했다면 도착한 순서대로 실행해주는 것

 - 문제점(by 평가지표 : 평균반환시간)

출처 : Operating Systems_Three Easy Pieces

 - 앞서 했던 가정 1, 2(작업 도착시간 동일, 수행시간 동일)를 무시

 - 작업 A가 가장 먼저 도착하는데 가장 긴 수행시간을 가진 경우

 - 평균 반환 시간 : (100+110+120)/3=110

 - 비효율('약간 늦게 도착했지만 금방 끝날 수 있는 작업 B와 C'가 A 때문에 상당히 긴 시간을 기다려야만 한다.)

--> convoy effect

 

7.4 Shortest Job First(SJF)

 - 위 문제에 대한 가장 간단한 해결책

출처 : Operating Systems_Three Easy Pieces

 - 가장 짧은 작업부터 처리(A, B, C가 동시에 도착했다는 가정 하에서)

 - 평균 반환 시간은 50으로 줄어듦

 - 그렇지만, B와 C가 A보다 늦게 도착하는 경우, FIFO과 같은 비효율 문제 발생

 

7.5 Shortest Time-to-Completion First(STCF)

 - 위 문제점을 해결하기 위해서는 늦게 들어오는 작업에 대해서도 고려해야 함

Non-Preemptive(비선점) Preemptive(선점)

First In First Out, FIFO(First Come, First Served)

Shortest Job First, SJF

Shortest Time-to-Completion First(STCF)

현재 실행 중인 프로그램에게 수행이 끝날 때까지 CPU 할당

현재 실행 중인 프로그램이 있더라도, 기준에 충족되는 다른 프로그램이 있으면 그 프로그램에 CPU 할당

출처 : Operating Systems_Three Easy Pieces

 - A 반환시간 : 120-0=120 / B 반환시간 : 20-10=10 / C 반환시간 : 30-10=20

 - 평균 반환시간 : 50

 

 - 지금까지는 STCF가 가장 이상적인 스케줄러

 - 하지만, metric에 response time(응답시간)을 포함시킨다면?

 - 응답시간 : T_response=T_firstrun-Tarrival(도착한 후 얼마나 빠르게 첫 실행이 되는지에 대한 지표)

 

 - STCF에서 A 응답시간 : 0 / B 응답시간 : 0 / C 응답시간 : 10 / 평균 응답시간 : 3.33

 - 하지만 A, B, C가 동시에 도착했다면? --> 응답시간 훨씬 비효율

 

7.6 Round Robin(RR)

 - 응답시간 문제 해결

 - 일정한 time slice(scheduling quantam)을 할당하고 그 시간이 지나면 다음 작업을 수행하게 함

 - time slice=1이라면 위 STCF에 비해 평균 응답시간이 줄어든다. --> (0+1+2)/3=1

 

 - 그렇다면, time slice는 작을수록 좋을까? --> No(오버헤드)

 - RR의 단점 : 평균 반환시간에서는 worst performance(계속해서 여러 작업을 교체 수행하므로, 한 작업이 끝나는 데까지는 오랜 시간이 걸릴 수밖에 없음)

 


==> 결과적으로, scheduling policy에서 turnaround time과 response time 간의 trade-off는 본질적인 문제임

 

7.7 Incorporating I/O

 - 가정 3 무시(작업 중 I/O request와 CPU demand가 번갈아가며 있음)

Poor Use Better Use
출처 : Operating Systems_Three Easy Pieces
출처 : Operaing Systems_Three Easy Pieces
A의 모든 I/O작업 및 CPU 작업이 모두 끝난 후 다른 작업 B 수행 A가 I/O작업 시에, 남는 CPU를 B에게 할당

 

-출처-

<OPERATING SYSTEMS three easy pieces>

 

REMZI H. ARPACI-DUSSEAU

ANDREA C. ARPACI-DUSSEAU

UNIVERSITY OF WISCONSIN-MADISON