코딩일기/자격증

[정보처리기사] 프로세스 스케줄링 | 선점 스케줄링 기법 & 비선점 스케줄링 기법 | SRT | 정보처리기사 실기 기출문제

jhy_2023 2024. 9. 6. 14:38
728x90
반응형

📌 프로세스 스케줄링이란?

프로세스 스케줄링은 운영체제에서 CPU를 프로세스들에게 효율적으로 배정하는 기술입니다. 여러 개의 프로세스가 실행 대기 상태에 있을 때, CPU를 어떻게 분배할 것인지를 결정하는 과정이 바로 프로세스 스케줄링입니다. 이 스케줄링 방식을 통해 프로세스 처리 효율성시스템 성능을 극대화할 수 있습니다.

스케줄링 방식은 크게 선점 스케줄링비선점 스케줄링으로 나뉩니다.


반응형

📌 선점 스케줄링 vs. 비선점 스케줄링

🔎 선점 스케줄링 (Preemptive Scheduling)

선점 스케줄링은 CPU 사용 중인 프로세스를 강제로 중단하고, 다른 프로세스에게 CPU를 배정할 수 있는 방식입니다.

  • 장점: 응답 시간을 줄이고, 긴급한 프로세스를 빠르게 처리할 수 있음.
  • 예시: SRT, RR, MLFQ 등.

🔎 비선점 스케줄링 (Non-preemptive Scheduling)

비선점 스케줄링은 프로세스가 CPU를 한 번 점유하면 작업이 끝날 때까지 사용하는 방식입니다.

  • 장점: CPU 처리의 예측이 가능하고, 프로세스가 중간에 중단되지 않음.
  • 예시: FCFS, SJF, HRN 등.

728x90
 

주요 프로세스 스케줄링을 선점 스케줄링비선점 스케줄링으로 나누어 설명하겠습니다.

1️⃣ 선점 스케줄링 (Preemptive Scheduling)

선점 스케줄링은 현재 실행 중인 프로세스를 중단하고, 다른 프로세스가 CPU를 사용할 수 있도록 하는 방식입니다. 주로 긴급한 작업을 먼저 처리해야 할 때 사용됩니다.

  • SRT (Shortest Remaining Time)
    • 설명: 실행 중인 프로세스의 남은 실행 시간이 더 긴 경우, 남은 실행 시간이 더 짧은 프로세스가 도착하면 실행 중인 프로세스를 중단하고, 새로운 프로세스를 실행합니다.
    • 장점: 짧은 작업을 먼저 처리하여 응답 시간을 줄일 수 있습니다.
    • 단점: 긴 작업이 자주 중단될 수 있어 비효율적일 수 있습니다.
  • RR (Round Robin)
    • 설명: 모든 프로세스에 동일한 시간 할당량을 주고, 해당 시간 동안만 실행한 후 다음 프로세스로 전환합니다. 주기적으로 모든 프로세스에게 CPU가 돌아가도록 설계된 방식입니다.
    • 장점: 공정하게 자원을 분배하며, 응답 시간이 빠릅니다.
    • 단점: 할당 시간이 너무 짧으면 빈번한 문맥 교환으로 인해 오버헤드가 증가할 수 있습니다.
  • MFQ (Multi-Level Feedback Queue) 다단계 피드백 큐 스케줄링
    • 설명: 프로세스들이 여러 레벨의 우선순위 큐에 배정되며, 각 프로세스가 CPU를 사용할 때마다 우선순위가 변동합니다. 처음엔 높은 우선순위 큐에 있다가, 시간이 지나면 낮은 우선순위 큐로 이동할 수 있습니다.
    • 장점: 시간이 지나도 낮은 우선순위 프로세스가 CPU를 받을 수 있어 기아 문제를 해결합니다.
    • 단점: 설정이 복잡하고, 우선순위 조정이 필요합니다.

2️⃣ 비선점 스케줄링 (Non-preemptive Scheduling)

비선점 스케줄링은 프로세스가 CPU를 점유하면 작업이 끝날 때까지 다른 프로세스가 CPU를 가로채지 않는 방식입니다. 즉, 한번 CPU를 할당받으면 중단 없이 끝까지 실행됩니다.

  • FCFS (First Come First Served)
    • 설명: 가장 먼저 도착한 프로세스부터 차례대로 CPU를 할당받아 실행됩니다.
    • 장점: 구현이 간단하며, 일괄 처리 시스템에 적합합니다.
    • 단점: 먼저 도착한 긴 작업 때문에 뒤에 도착한 짧은 작업들이 오랜 시간 대기해야 하는 대기 시간 증가 문제를 겪을 수 있습니다.
  • SJF (Shortest Job First)
    • 설명: CPU 사용 시간이 가장 짧은 프로세스부터 우선적으로 실행하는 방식입니다.
    • 장점: 평균 대기 시간이 최소화됩니다.
    • 단점: 실행 시간이 긴 프로세스가 무한정 대기하는 기아 현상이 발생할 수 있습니다.
  • HRN (Highest Response Ratio Next)
    • 설명: 대기 시간과 실행 시간을 고려해 응답 비율이 높은 프로세스를 우선 처리하는 방식입니다.
    • 응답 비율은 (대기 시간 + 실행 시간) / 실행 시간으로 계산됩니다.
      * 실행시간 = 서비스시간
    • 장점: SJF의 기아 문제를 보완하며, 공정한 CPU 분배가 가능합니다.
    • 단점: 구현이 복잡할 수 있습니다.

2020년 정보처리기사 실기 기출문제

문제

스케줄링 방식에서 HRN(Highest Response ratio Next) 우선순위 계산식을 쓰시오.

(대기 시간 + 서비스 시간) / 서비스 시간
* 실행시간 = 서비스시간

해설

HRN(Highest Response-ratio Next) 스케줄링 방식은 대기 시간과 **서비스 시간(실행 시간)**을 기반으로, 응답 비율이 높은 프로세스를 우선 실행하는 방식입니다. 이 알고리즘은 SJF(Shortest Job First)의 단점을 보완하여, 긴 대기 시간을 가진 프로세스도 일정 비율 이상으로 우선순위를 받을 수 있도록 설계되었습니다.

HRN(Highest Response-ratio Next) 스케줄링 알고리즘은 **응답 비율(Response Ratio)**을 계산하여 가장 높은 응답 비율을 가진 프로세스에게 CPU를 할당합니다.

  • 대기 시간: 프로세스가 대기 중인 시간.
  • 서비스 시간(실행 시간): 프로세스가 CPU에서 실제로 실행되는 데 필요한 시간.

우선순위 계산 공식:

​ 이 식을 보면, 대기 시간이 길어질수록 응답 비율이 커져 우선순위가 높아집니다. 이는 긴 시간 동안 대기하던 프로세스가 계속 대기 상태에 머물지 않도록 CPU 자원을 받을 수 있게 해줍니다.


2024년 2회 정보처리기사 실기 기출문제

문제

아래의 표를 확인하여 SRT 스케줄링의 평균 대기시간을 계산하여 작성하시오.

6.5

해설

  • SRT는 선점형 스케줄링 방식 중 하나입니다. 각 프로세스의 남은 실행 시간(Remaining Time) 을 비교해서, 가장 남은 시간이 짧은 프로세스를 먼저 실행합니다. 실행 중 더 짧은 작업이 도착하면, 현재 작업을 중단하고 그 작업으로 교체합니다.
  • 대기시간이란 CPU를 사용하지 않고 기다린 시간입니다.
    • 종료시간(Finish Time): 해당 프로세스가 완전히 끝난 시각
    • 도착시간(Arrival Time): 프로세스가 시스템에 도착한 시각
    • 실행시간 = 서비스시간(Burst Time): 프로세스가 CPU를 실제로 사용한 총 시간

✅ SRT(Shortest Remaining Time) 스케줄링 시뮬레이션
매 시간마다 현재까지 도착한 프로세스 중에서 "남은 시간이 가장 짧은 프로세스"를 선택해서 실행합니다.

시간  실행 중인 프로세스 설명
0 A (8→7) A 도착
1 B (4→3) B 도착
남은시간 짧아 B 선점
2 B (3→2) C 도착
남은시간 짧아 B 선점
3 B (2→1) D 도착
남은시간 짧아 B 선점
4 B (1→0) 남은시간 짧아 B 선점
B 종료
(종료시간: 4초)
5 D (5→4) 남은시간 짧아 D 선점
6 D (4→3) 남은시간 짧아 D 선점
7 D (3→2) 남은시간 짧아 D 선점
8 D (2→1) 남은시간 짧아 D 선점
9 D (1→0) 남은시간 짧아 D 선점
D 종료

(종료시간: 9초)
10 A (7→6) 남은시간 짧아 A 선점
11 A (6→5) 남은시간 짧아 A 선점
12 A (5→4) 남은시간 짧아 A 선점
13 A (4→3) 남은시간 짧아 A 선점
14 A (3→2) 남은시간 짧아 A 선점
15 A (2→1) 남은시간 짧아 A 선점
16 A (1→0) 남은시간 짧아 A 선점
A 종료
(종료시간: 16초)
17 C (9→8) 남은시간 짧아 C 선점
18 C (8→7) 남은시간 짧아 C 선점
19 C (7→6) 남은시간 짧아 C 선점
20 C (6→5) 남은시간 짧아 C 선점
21 C (5→4) 남은시간 짧아 C 선점
22 C (4→3) 남은시간 짧아 C 선점
23 C (3→2) 남은시간 짧아 C 선점
24 C (2→1) 남은시간 짧아 C 선점
25 C (1→0) 남은시간 짧아 C 선점
C 종료
(종료시간: 25초)

 평균 대기시간

평균 대기시간 = (9 + 0 + 15 + 2) / 4 = 26 / 4 = 6.5초

- 프로세스 A : 10초-1초 = 9초

- 프로세스 B : 대기시간 없이 바로 실행되어 바로 종료 따라서 0초

- 프로세스 C : 17초 - 2초 = 15초

- 프로세스 D : 5초 - 3초 = 2초


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형