프로세스 스케줄링


1. 선점(Preemptive) 스케줄링

선점 스케줄링이란 우선순위가 높은 프로세스가 현재 프로세스를 중지시키고 자신이 CPU를 점유하는 스케줄링 기법



📌 선점 스케줄링 알고리즘
🔹 Round Robin : 시간 할당량(Time Quantum) 지나면 다음 프로세스로 교체
🔹 SRTF (Shortest Remaining Time First) : 남은 시간이 더 짧은 새 작업이 오면 현재 작업 중단
🔹 선점형 우선순위(Priority Scheduling) : 더 높은 우선순위의 프로세스가 도착하면 중단됨


 2. 비선점(Non-preemptive) 스케줄링image.png

프로세스가 자원을 할당받았을 경우 자원을 스스로 반납할 때 까지 계속 그 자원을 사용하도록 허용하는 기법

한 번 실행된 프로세스는 끝날 때까지 CPU를 점유한다. 그래서 새로 도착한 프로세스는 대기해야 한다.
중요한 작업이 길면, 뒤에 있는 짧은 작업이 오래 기다릴 수 있기 때문에 기아현상 발생 가능

📌 비선점 스케줄링 알고리즘
🔸 FCFS (First Come First Serve) : 먼저 도착한 순서대로 실행
🔸 SJF (Shortest Job First) : 실행시간이 짧은 것부터 실행
🔸 비선점 우선순위 스케줄링 : 우선순위 높은 순으로 실행, 중간 교체 없음
🔸 HRN (Highest Response Ratio Next) : 반응 비율 기반, 대기시간 고려


문제풀이

비선점은 들어온 순서대로 처리하니까 쉬움
선점형은 실행 도중에도 더 짧은 프로세스가 도착하면 현재 작업을 중단하고 짧은 걸 먼저 실행하므로실행 순서가 바뀜


1.FCFS

image.png

 

2.SFJ

image.png

프로세스

실행시간

대기시간

반환시간

P-2

3

0

3

P-1

6

3

9

P-4

7

9

16

P-3

8

16

24

 

 

28 / 4 = 7

52 / 4 = 13











image.png

Task

도착시간

실행시간

대기시간

반환시간

Task1

0

6

0

6

Task2

1

3

6

9

Task3

2

2

9

2

합계

 

 

15

17

⭐ 도착시간이 0일 때 T1만 도착했기 때문에 T1가 실행시간이 길더라도 먼저 실행된다. (왜? 해당 시간에 도착한 작업이 T1뿐)


3.HRN

✅ HRN 우선순위 계산식



 image.png

 

4.SRT

image.png

image.png


5.RR(Round Robin)

 

CPU 사용 순서 문제

image.png

image.png

라운드 로빈 방식에서 주의할 점

⭐ 남은 실행 시간만 보고 풀면 틀린다.

⭐ 대기큐를 그려야 한다.


라운드 로빈 (RR) 스케줄링을 풀 때 대기 큐의 순서를 반드시 고려해야 한다. 단순히 "남은 실행 시간"만 보고 짧은 작업을 먼저 실행하는 것이 아니라, 큐에 들어간 순서대로 작업이 실행된다.

타임 퀀텀(시간 할당)이 끝나면 무조건 대기 큐로 이동! → 대기 큐에 있는 순서대로 실행! → 남은 실행 시간이 짧아도 먼저 실행되지 않음 → 그래서 모든 작업이 번갈아가면서 실행됨

라운드 로빈에서는 남은 시간이 적은 작업이 있더라도 먼저 들어온 순서대로 실행된다. 즉, ABC 세 개의 작업이 남아 있다면, ABC 순서대로 계속 번갈아가면서 실행된다. 이걸  놓치면 잘못된 순서로 풀게 되어 답이 틀릴 수 있다.

image.png

이렇게 풀면 절대 틀리지 않는다.

 

 

평균 대기시간 문제

 

대기 시간 (Waiting Time, WT) = 완료 시간 (FT) - 도착 시간 (AT) - 실행 시간 (BT)


 

평균 반환시간 문제

반환 시간 (Turnaround Time, TAT) = 완료 시간 (FT) - 도착 시간 (AT)

- 이런 문제는 도착시간이 모두 0이라고 생각하고 푼다 (문제에 따로 명시되지 않았기 때문)



참고 자료

  1. 흥달쌤의 정보처리기사 계산식 특강
  2. https://buly.kr/8eljGok



Revision #8
Created 11 July 2025 10:23:44 by Dain
Updated 16 July 2025 00:58:22 by Dain