정보처리기사 실기를 준비하면서 프로세스 스케줄링 알로리즘 계산하는 것이 유형이 많고 헷갈려 블로그에 정리하여 이해하려 한다.
📌 프로세스 스케줄링이란?
프로세스 스케줄링은 CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업이다.
스케줄링은 처리율과 CPU 이용률을 증가시키고 오버헤드, 응답시간, 반환 시간, 대기시간을 최소화시키기 위한 기법이다.
특정 프로세스가 적합하게 실행되도록 프로세스 스케줄링에 의해 프로세스 사이에서 CPU 교체가 일어난다.
📌 프로세스 스케줄링 유형
프로세스 스케줄링 유형에는 선점형 스케줄링과 비선점형 스케줄링이 있다.
✔️선점형 스케줄링
선점형 스케줄링이란 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식보처리기사 실기를 준비하면서 프로세스 스케줄링 알로리즘 계산하는 것이 유형이 많고 헷갈려 블로그에 정리하여 이해하려 한다.
📌 프로세스 스케줄링이란?
프로세스 스케줄링은 CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업이다.
스케줄링은 처리율과 CPU 이용률을 증가시키고 오버헤드, 응답시간, 반환 시간, 대기시간을 최소화시키기 위한 기법이다.
특정 프로세스가 적합하게 실행되도록 프로세스 스케줄링에 의해 프로세스 사이에서 CPU 교체가 일어난다.
📌 프로세스 스케줄링 유형
프로세스 스케줄링 유형에는 선점형 스케줄링과 비선점형 스케줄링이 있다.
✔️선점형 스케줄링
하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식이다.

- SRT, 다단계 큐(MLQ), 다단계 피드백 큐(MLFQ), 라운드 로빈(RR)
✔️비선점형 스케줄링
한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 스케줄링 방식이다.

- 우선순위, 기한부, HRN, FCFS, SJF
이제 각각의 알고리즘의 계산 방법에 대해 알아보자. 모든 예시는 평균 반환 시간과 평균 대기 시간을 구한다.

1) FCFS( FIFO) 스케줄링 (비선점)

| 시간 | 사건 |
| 0 | - 0시간에 P1만 도착해서 P1이 자원 점유 - P1이 3시간까지 자원을 점유 |
| 3 | - 3시간에 P1 종료 - P2가 P3보다 먼저 도착했으므로 P2가 자원을 점유 |
| 10 | - 10시간에 P2 종료 - P3가 3시간에 도착, P4가 5시간에 도착해 있어서, 먼저 도착한 P3가 자원을 점유 |
| 12 | - 12시간에 P3 종료 - P3가 종료 후 남은 P4가 자원을 점유하여 17시간까지 서비스를 수행하고 종료 |

- 평균 반환 시간 = (3+9+9+12) / 4 = 8.25
- 평균 대기 시간 = (0+2+7+7) / 4 = 4
2) SJF 스케줄링(비선점)

| 시간 | 사건 |
| 0 | - 0시간에 P1만 도착해서 P1이 자원 점유 - P1이 3시간까지 자원을 점유 |
| 3 | - 3시간에 P1 종료 - 3시간에 P2,P3가 도착했지만, P2는 서비스 시간이 7이고, P3는 서비스 시간이 2이므로 서비스 시간이 가장 짧은 P3가 자원을 점유 |
| 5 | - 5시간에 P3 종료 - 5시간에 이미 도착한 P2와 방금 도착한 P4가 있는데, P2는 서비스 시간이 7이고, P4는 서비스 시간이 5이므로 서비스 시간이 더 짧은 P4가 자원을 점유 |
| 10 | - 10시간에 P4 종료 - 마지막으로 남아있는 P2가 자원을 점유하여 17시간까지 서비스를 수행하고 종료 |

- 평균 반환 시간 = (3+16+2+5) /4 = 6.5
- 평균 대기 시간 = (0+9+0+0) / 4 = 2.25
3) SRT 스케줄링(선점)

| 시간 | 사건 |
| 0 | - P1이 도착하고, P1이 자원을 점유 |
| 2 | - P2가 도착 - P1의 남은 서비스 시간은 1, P2의 남은 서비스 시간은 6이므로 남은 서비스 시간이 가장 적은 P1이 계속해서 자원을 점유 |
| 3 | - P1이 종료되고, 남은 서비스 시간이 가장 적게 남은 P2가 자원을 점유 |
| 4 | - P3가 도착 - P2의 남은 서비스 시간은 5, P3의 남은 서비스 시간은 4이므로 P3가 자원을 점유 |
| 8 | - P4가 도착 - P3가 종료되고, 남은 서비스 시간이 가장 적은 P4가 자원을 점유 |
| 10 | - P4가 종료되고, 마지막으로 남은 P2가 자원을 점유하여 15시간까지 서비스를 수행하고 종료 |

4) RR( FIFO) 스케줄링

| 시간 | 사건 | 상태 |
| 0 | - P1만 도착하고 시간 할당량 2만큼 할당받아 자원을 점유 | 큐 : - 프로세스 실행 : P1 |
| 1 | - P2가 도착하고, 큐에 맨 뒤에 대기 | 큐 : P2 프로세스 실행 : P1 |
| 2 | - P1은 시간 할당량 2를 채웠기 때문에 큐의 맨 뒤에 대기 - 큐의 맨 앞에 있는 P2가 시간 할당량 2만큼 자원을 점유 |
큐 : P1 프로세스 실행 : P2 |
| 3 | - P3가 도착하고, 큐의 맨 뒤에 대기 | 큐 : P1, P3 프로세스 실행 : P2 |
| 4 | - P2는 시간 할당량 2를 채웠기 때문에 큐의 맨 뒤에 대기 - 큐의 맨 앞에 있는 P1이 시간 할당량 2만큼 자원을 점유 |
큐 : P3, P2 프로세스 실행 : P1 |
| 5 | - P4가 도착하고, 큐의 맨 뒤에 대기 - P1은 시간 할당량 2시간만큼의 자원을 점유 |
큐 : P2, P4 프로세스 실행 : P3 |
위와 같은 방식으로 동작 방식을 계산할 수 있다.
