I. 타 프로세스 선점 불가, CPU 비선점 스케줄링 기법
가. CPU 비선점 기법의 개념
- 프로세스 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 스케줄링 기법
나. CPU 비선점 기법 개요도
II. CPU 비선점 기법
알고리즘 | 처리방식 |
---|---|
우선순위 스케줄링 (Priority) | – 각 프로세스의 우선순위에 따라 CPU 할당 – 동일한 우선 순위는 FCFS 처리 – 우선순위 결정: 관리자에 의한 결정, 자원요구량에 의한 결정, CPU처리 시간에 의한 결정, 시스템에서 보낸 시간에 의한 결정 등 사용 – 우선순위가 높은 작업이 계속적으로 들어오게 될 우선순위가 낮은 프로세스는 Starvation 발생 à Aging 기법으로 해결 가능 |
기한부 스케줄링 (Deadline) | – 작업들이 명시된 시간이나 기한 내 완료 계획 – 사용자는 작업이 요구하는 정확한 자원 제시 – 작업시간이나 상황 등 정보 미리 예측 어려움 |
FCFS (First Come First Service = FIFO) | – 프로세스가 대기큐 도착한 순서에 따라 CPU 할당 – 가장 간단한 FIFO(First Input First Out) 알고리즘 – Burst time이 긴 프로세스가 CPU 독점 – 단독적 사용이 거의 없으며, 다른 스케줄링 알고리즘에 보조적으로 사용(우선순위, RR 등) |
SJF (Shortest Job First) | – 준비 큐 내 수행시간이 가장 짧은 프로세스 수행 – CPU Burst 길이를 비교하여 CPU 이용 가능해지면 가장 작은 CPU Burst를 가진 프로세스 할당 – 주어진 프로세스 집합에 대해서 평균 대기 시간이 최소가 되는 최적 알고리즘 – CPU 요구 시간이 긴 작업과 짧은 작업 간 불평등 심하여, CPU 요구 시간 긴 프로세스는 Starvation 발생 → HRN 사용 |
HRN (Highest Response Ratio Next) | – 응답 비율 = (대기시간+서비스 시간)/서비스 시간 – 대기중인 프로세스 중 현재 Response Ratio 가 가장 높은 것을 선택 – SJF의 약점을 보완한 기법으로 긴 작업과 짧은 작업 간 불평등 완화 – 우선순위 계산식 = (대기 시간 + 서비스 시간) / 서비스 시간 |
III. CPU 선점과 비선점 기법 비교
구분 | 선점(Preemptive) 스케줄링 | 비선점(Non-preemptive) 스케줄링 |
---|---|---|
개념 | – 우선순위가 높은 다른 프로세스가 현재 프로세스를 중지 시키고 자신이 CPU 점유 | – 한 프로세스가 CPU를 할당 받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유불가 |
특징 | – 하드웨어(Timer) 필요 – 공유 데이터에 대한 프로세스 동기화 필요 | – 특수 하드웨어(Timer) 없음 – 종료 시까지 계속 CPU 점유 |
장점 | – 비교적 빠른 응답 – 대화식 시분할 시스템에 적합 | – 응답시간 예상이 용이 – 모든 프로세스에 대한 요구를 공정하게 처리 |
단점 | – 높은 우선순위 프로세스들이 들어오는 경우 오버헤드를 초래 | – 짧은 작업을 수행하는 프로세스가 긴 작업 종료 시까지 대기 |
알고리즘 | Round Robin, SRT, 다단계 큐, 다단계 피드백 큐 | 우선순위 스케줄링, 기한부 스케줄링, FCFS, SJF, HRN |
활용 | – 실시간 응답 환경, Deadline 응답 환경 | – 처리시간 편차가 적은 특정 프로세스 환경 |