Burst (버스트)
CPU burst
I/O burst
CPU-Burst Times 히스토그램
구분 | 선점형 스케줄링 | 비선점 스케줄링 |
---|---|---|
개념 | ① 가장 자원이 필요한 프로세스(우선순위 높음)에게 CPU를 분배하며, 자원을 강제로 빼앗아 다른 프로세스에 할당할 수 있는 스케줄링 방식 [ 새치기와 비슷한 개념 ] | ① 프로세스가 종료되거나 대기 상태에 접어들기 전까지 다른 프로세스가 끼어들 수 없는 스케줄링 방식 ② 하나의 프로세스가 자원 사용 독점 |
장점 | 하나의 프로세스의 자원 독점을 막고 골고루 배분 가능 | ① 선점형보다 문맥교환에 의한 오버헤드가 적다 ② 응답시간을 예상할 수 있다. |
단점 | 문맥 교환 과정에서 오버헤드 발생 | ① 자원 골고루 사용 불가 ② 당장 사용해야 하는 상황에서도 무작정 기다림 |
발생 경우 | 현재 실행중인 프로세스가 계속 실행될 수 있고 다른 준비된 프로세스를 실행할 수 있으므로 선택의 여지가 있음 => 선점 ① Running → Ready ② Waiting → Ready ③ New → Ready | CPU가 아무 일도 하지 않아 반드시 새로운 프로세스를 실행해야 하므로 선택의 여지가 없음 => 비선점 ① Running → Waiting ② Terminates |
스케줄링 기준
스케줄링 알고리즘 최적화 기준
예시 ①
process | Burst Time (연속사용시간) |
---|---|
P1 | 24 |
P2 | 3 |
P3 | 3 |
가정: Burst Time은 위와 같고, 프로세스가 순차적으로 도착(P1, P2, P3)
[ 간트 차트 ]
총 처리 시간 (Turnaround Time) → Burst Time의 합산
24 + 3 + 3 = 30
대기시간 (Wairing time)
FCFS에서의 특정 프로세스 대기시간 = 특정 프로세스의 시작시간
P1 = 0, P2 = 24, P3 = 27 (24+3)
평균 대기시간 (Average waiting time)
(0 + 24 + 27) / 3 = 17
예시 ①은, [ 호위효과(Convoy Effect)🌽가 발생한다! ]
예시 ②
process | Burst Time (연속사용시간) |
---|---|
P1 | 24 |
P2 | 3 |
P3 | 3 |
가정: P2 , P3 , P1순으로 프로세스가 도착
[ 간트 차트 ]
대기시간 (Waiting time)
P1 = 6, P2 = 0, P3 = 3
평균 대기시간 (Average waiting time)
(6 + 0 + 3) / 3 = 3
순서 조정만 했을 뿐인데 평균 대기 시간이 크게 감소한 것을 확인할 수 있다. (호위효과 발생 x)
예시 ①
process | Burst Time (연속사용시간) |
---|---|
P1 | 6 |
P2 | 8 |
P3 | 7 |
P4 | 3 |
다음 CPU Burst Time 예측
SJF는 가장 좋은 스케줄링 방법이지만 CPU Burst Time을 미리 알 방법이 없다.
예측 방법 (시험에 안나온다고 하심😄)
SRTF에서 Turnaround Time (총처리시간) 구하기
SRTF에서 Waiting Time (대기시간) 구하기
예시
process | Arrival Time | Burst Time (연속사용시간) |
---|---|---|
P1 | 0 | 8 |
P2 | 1 | 4 |
P3 | 2 | 9 |
P4 | 3 | 5 |
반환 시간 (Turnaround Time)
대기 시간 (Waiting Time)
총 처리 시간 (Turnaround Time)
평균 대기 시간 (Average waiting time)
예시
process | Burst Time (연속사용시간) | Priority |
---|---|---|
P1 | 10 | 3 |
P2 | 1 | 1 |
P3 | 2 | 4 |
P4 | 1 | 5 |
P5 | 5 | 2 |
RR (Round Robin)
시간 q를 모두 사용했음에도 프로세스가 완료되지 않았다면, 실행 중이던 프로세스가 선점(새치기)당하여 준비완료 큐의 끝에 가게 된다. -> 문맥 교환 발생
시간할당량(q)에 따른 성능
예시
가정: Time Quantum = 4
process | Burst Time (연속사용시간) |
---|---|
P1 | 24 |
P2 | 3 |
P3 | 3 |
[ 간트 차트 ]
- Time Quantum(q)와 Context Switching 간의 관계
- time Quantum에 따라 Context Switching 개수가 달라진다!
가정: Burst Time = 10
q가 12일 때, Context Switching이 일어나지 않는다.
q가 6일 때, Context Switching 1번 일어난다.
q가 1일 때, Context Switching 9번 일어난다.