참고 : [Course] Operating System (CPA310) - 운영체제 강의
[ 운영 체제 6-2강. 프로세스 스케줄링 ]
스케줄링 알고리즘
1. FCFC (First-Come-First-Service)
-
“선착순” 알고리즘
-
Non-preemptive 스케줄링 ( 비선점 )
-
스케줄링 기준 : “도착 시간”
-
자원 효율적 사용 가능
( 들어오는 순대로 던저주면 되니까, scheduling overhead 적어 )
-
적/부적합 System :
- 적합 : Batch System
- 부적합 : Interactive System
-
단점 :
- Convoy effect : 대기시간 » 실행시간인 프로세스가 있을 수 있다!
- 긴 평균 응답 시간
2. RR (Round-Robin)
-
Preemptive 스케줄링 ( 선점 )
( key idea : 돌아가면서 n초씩 쓰자! )
-
스케줄링 기준 : “도착 시간”
-
“자원 사용 제.한.시.간 (=time quantum)”이 있다
( 특정 자원이 독점 방지! )
-
단점 : Context Switch, Overhead가 큼
-
적합 : 대화형, 시분할 시스템
-
결국, Time quantum(제한 시간)이 시스템 성능에 핵심
- 너무 클 경우 : FCFS ( 사실상 “선착순” )
- 너무 작을 경우 : Processor Sharing ( 사실상 “동시” )
3. SPN (Shortest-Process-Next)
-
Non-preemptive 스케줄링 ( 비선점 )
-
key idea : 난 금방 끝낼 수 있는데…이 만큼이나 기다리라고??
( 짧은 애를 먼저 뺴주자! )
-
스케줄링 기준 : “Burst Time”이 가장 작은 프로세스부터
( = SJF (Shortest Job First) 스케줄링 )
-
장/단점
-
장점 :
-
1) 평균 대기시간(WT) 최소화
-
2) 시스템 내 프로세스 수 최소화
( 스케줄링 부하 감소 & 메모리 감소 -> 효율 UP )
-
3) 많은 프로세스들에 “빠른 응답 시간 제공”
-
-
단점 :
-
1) Starvation (무한 대기) 현상
( 나 오래걸리는 작업이라고…계속 기다리라고?? )
( 해결 : Aging 등 … HRRN )
-
2) 정확한 실행시간 알 수 X
( 실행 시간 예측 기법이 필요함 )
-
-
4. SRTN ( Shortest Remaining Time Next )
-
SPN의 변형 ! “남은 시간” 이 가장 적은 애를 선택
-
Preemptive scheduling ( 선점 )
- 잔여 실행 시간 더 적은 또 다른 process가 ready가 되면, 쓰던거 뺏길 수도!
-
장/단점
-
장점 : SPN의 장점 극대화
-
단점 : 총 실행 시간 & 잔여 실행 시간 예측/추적 계속해야!
( 구현/사용이 비현실적…. )
-
5. HRRN (High-Response-Ratio-Next)
-
Non-preemtive scheduling ( 비선점 )
-
SPN의 문제점 : Starving (기아 현상)
-
HRRN = SPN의 변형
( SPN + Aging concepts (오래 전에 들어온 프로세스 고려 ) )
-
스케줄링 기준 : “Response Ratio”가 높을 수록!
Response Ratio (응답률) = (WT+BT) / BT
- 의미 : 필요한 시간 대비, 지금까지 얼마나 기다려왔는가?
SUMMARY
공평성 ( Fairness )에 초점
- FCFS
- RR
효율성/성능 ( Efficiency / Performance )에 초점
( 공통 문제점 : 실행 시간 예측 부하 + 힘들고, 정확하지도 않음 )
- SPN
- SRTN
- HRRN
이를 보안하기 위한 MLQ & MFQ
- MLQ = Multi-level Queue
- MFQ = Multi-level Feedback Queue
6. MLQ ( Multi-level Queue )
( 성능/효율성 높이는 건 좋은데…. 실행시간(BT)를 예측해야한다고! 이거 없이 안될까?? )
- 작업 (or 우선 순위)별 별도의 ready queue를 가진다
- 최초 배정된 queue로 fix됨
- 각각의 queue는 “자신 만의 스케줄링 기법” 가짐
- queue 사이에는, “우선 순위 기반의 스케줄링”
- 장/단점
- 장점 : 빠른 응답시간(?)
- 우선 순위 높은 애들은 빠르겠지만….
- 단점 : 여러 queue
- 장점 : 빠른 응답시간(?)
7. MFQ ( Multi-level Feedback Queue )
- MLQ + “최초 배정된 queue 이동 가능”
- Feedback을 통해, 우선 순위 조정
- 단점 : 설계/구현이 복잡 & 스케줄링 overhead가 큼 & Starvation 문제