비선점형 스케줄링
실행 중인 프로세스가 스스로 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 | 도착 순서 | X | O 발생 |
| SJF | 실행 시간 짧은 것 | O 발생 | X |
| HRN | 응답 비율 | X | X |
장단점
| 장점 | 단점 |
|---|---|
| 구현 간단 | 응답성 낮음 |
| 문맥 교환 비용 적음 | 실시간 처리 부적합 |
| 예측 가능한 실행 순서 | 호위 효과 / 기아 발생 가능 |
비선점형은 배치 처리 시스템처럼 응답성보다 처리량이 중요한 환경에 적합하며, 현대 OS는 응답성을 위해 주로 선점형을 사용합니다.