비선점형 스케줄링

실행 중인 프로세스가 스스로 CPU를 반납할 때까지 강제로 빼앗을 수 없는 스케줄링 방식입니다.

선점 vs 비선점

[선점]
프로세스 실행 중 → 조건 충족 시 CPU 강제 회수 가능

[비선점]
프로세스 실행 중 → 종료 or I/O 발생 전까지 CPU 점유 유지

CPU를 반납하는 시점

1. 프로세스 실행 완료
2. I/O 요청으로 대기 상태 전환
3. 자발적으로 CPU 양보

주요 알고리즘

FCFS (First Come First Served)

먼저 도착한 순서대로 처리

도착 순서: P1(24ms) → P2(3ms) → P3(3ms)

P1[────────────────────]P2[───]P3[───]
   0          24ms      27ms  30ms

평균 대기 시간: (0 + 24 + 27) / 3 = 17ms
호위 효과(Convoy Effect): 긴 작업 뒤에 짧은 작업이 오면
짧은 작업이 오래 기다려야 함

SJF (Shortest Job First)

실행 시간이 짧은 프로세스 먼저 처리

P2(3ms) → P3(3ms) → P1(24ms)

P2[───]P3[───]P1[────────────────────]
   3ms   6ms          30ms

평균 대기 시간: (0 + 3 + 6) / 3 = 3ms ← 최적
단점: 실행 시간을 미리 알기 어려움
      긴 작업은 계속 밀려 기아(Starvation) 발생 가능

HRN (Highest Response Ratio Next)

SJF의 기아 문제를 보완
우선순위 = (대기 시간 + 실행 시간) / 실행 시간

대기 시간이 길수록 우선순위 높아짐 → 기아 방지

알고리즘 비교

알고리즘기준기아호위 효과
FCFS도착 순서XO 발생
SJF실행 시간 짧은 것O 발생X
HRN응답 비율XX

장단점

장점단점
구현 간단응답성 낮음
문맥 교환 비용 적음실시간 처리 부적합
예측 가능한 실행 순서호위 효과 / 기아 발생 가능

비선점형은 배치 처리 시스템처럼 응답성보다 처리량이 중요한 환경에 적합하며, 현대 OS는 응답성을 위해 주로 선점형을 사용합니다.

CSLOG에서 보기