포스트

임베디드 스터디 - 단일 프로세서 스케줄링 알고리즘

임베디드 스터디 - 단일 프로세서 스케줄링 알고리즘

FCFS (First Come First Served)

  • 먼저 도착한 프로세스를 먼저 처리 — 가장 단순한 알고리즘
  • 비선점형 : 일단 CPU를 할당받으면 완료까지 실행
  • 단점 : 호위 효과 (Convoy Effect) — 실행시간이 긴 프로세스 뒤에 짧은 프로세스들이 줄 서서 대기
1
2
3
4
5
6
P1(10ms) → P2(4ms) → P3(2ms) 순서로 도착 시

│    P1(10ms)    │  P2(4ms)  │P3│
0               10          14  16

P2 대기시간 = 10 - 1 = 9ms (Convoy Effect 발생)

SJF (Shortest Job First)

  • 실행시간이 짧은 프로세스를 먼저 처리 → 평균 대기시간 최소화
  • 실행시간은 예측값 사용 (실행 전 정확한 시간을 알 수 없으므로)
  • 한계 : 실행시간 예측이 어려워 실제 OS에서 완전한 형태로 구현하기 어려움

비선점형 SJF

  • CPU를 할당받으면 완료까지 실행
  • 새 프로세스 도착 시 : 현재 실행 중인 프로세스가 끝난 후 Ready Queue에서 가장 짧은 것 선택

선점형 SJF — SRTF (Shortest Remaining Time First)

  • 새 프로세스 도착 시 : 현재 프로세스의 남은 실행시간과 비교하여 더 짧으면 즉시 선점
1
2
3
P1 실행 중 (남은시간 10ms)
새 프로세스 P2 도착 (예측 실행시간 3ms)
3ms < 10ms → P1 선점, P2 즉시 실행

Priority 스케줄링

  • 각 프로세스에 우선순위를 부여하여 높은 순서대로 실행
  • 문제 : 기아 현상 (Starvation) — 낮은 우선순위 프로세스가 계속 밀려 영원히 실행되지 못함
  • 해결 : 에이징 (Aging) — 오래 기다린 프로세스의 우선순위를 점진적으로 높임

Round Robin (RR)

  • 모든 프로세스에게 동일한 타임 퀀텀(Time Quantum)을 순서대로 할당
  • 타임 퀀텀 만료 시 강제 선점 → 다음 프로세스로 이동
  • 선점형, 응답시간이 중요한 인터랙티브 시스템에 적합

타임 퀀텀 크기의 영향

타임 퀀텀문제
너무 큼FCFS와 동일해짐 → 호위 효과 재발
너무 작음컨텍스트 스위칭 오버헤드 폭증
적절 (일반적으로 10~100ms)응답시간·오버헤드 균형

간트차트 계산 예제

프로세스 정보:

프로세스도착시간실행시간
P1010
P214
P322

FCFS

1
2
│      P1(10)      │   P2(4)   │P3│
0                 10          14  16
프로세스대기시간
P10ms
P210 - 1 = 9ms
P314 - 2 = 12ms
\[\text{평균 대기시간} = \frac{0 + 9 + 12}{3} = 7\text{ms}\]

SJF (비선점형)

  • t=10에 Ready Queue: P2(4ms), P3(2ms) → P3 먼저 실행
1
2
│      P1(10)      │P3│   P2(4)   │
0                 10 12          16
프로세스대기시간
P10ms
P310 - 2 = 8ms
P212 - 1 = 11ms
\[\text{평균 대기시간} = \frac{0 + 8 + 11}{3} \approx 6.33\text{ms}\]

Round Robin (타임 퀀텀 = 4ms)

1
2
│ P1 │ P2 │P3│      P1      │
0    4    8  10             16
프로세스대기시간
P116 - 0 - 10 = 6ms
P28 - 1 - 4 = 3ms
P310 - 2 - 2 = 6ms
\[\text{평균 대기시간} = \frac{6 + 3 + 6}{3} = 5\text{ms}\]

비교 요약

알고리즘선점 여부특징단점
FCFS비선점형구현 단순호위 효과 (Convoy Effect)
SJF비선점형평균 대기시간 최소실행시간 예측 어려움
SRTF선점형SJF의 선점 버전실행시간 예측 어려움
Priority선점/비선점우선순위 기반기아 현상 (Starvation)
Round Robin선점형응답시간 균등타임 퀀텀 설정 중요
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.