CPU 비선점 스케줄링 기법

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 응답 환경– 처리시간 편차가 적은 특정 프로세스 환경

 

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^