SJF 스케줄링
2018. 6. 21. 16:54
CPU 스케줄링
SJF 스케줄링 개념
SJF 스케줄링이란?
CPU 작업 시간이 가장 짧은 프로세스 순으로 스케줄링 (빨리 끝나는 것부터 처리)
비선점 방식
작업 시간이 동일할 경우 FCFS 정책을 따름
ex) 피자를 나누어 드립니다. 단, 제일 피자를 빨리 먹는 사람 순으로 피자를 줄 거예요.
SJF 스케줄링의 장점
1. 평균 대기 시간 최소화
2. 시스템 내의 대기 프로세스 수 최소화
3. 많은 프로세스들에게 바른 응답 시간 제공
SJF 스케줄링의 단점
1. 무기한 연기 현상 발생 가능 (기아 현상, 한 프로세스를 처리하지 못하고 계속 연기되는 현상, 에이징 기법으로 해결 가능)
2. 프로세스 생성 시 총 실행 시간에 대한 정확한 계산 불가능 (각 프로세서의 실행 시간에 대한 추정 필요)
SJF 스케줄링을 실행했을 경우, 결과를 알아보자.
프로세스 |
버스트 시간 |
P1 |
6ms |
P2 |
8ms |
P3 |
7ms |
P4 |
3ms |
위와 같은 프로세스를 처리하는 스케줄링 표 ↓
P4 |
P1 |
P3 |
P2 |
→ 도착 시간이 명시되어 있지 않는다면 모두 같이 도착한 걸로 판단한다. P1은 처리하기 까지 3초를, P2는 16초를, P3는 9초를, P4는 0초를 기다렸으므로 평균 대기 시간은 7초이다.