우선순위 스케줄링 방식의 운선순위 결정
우선순위 스케줄링 방식은 프로세스의 우선순위를 어떻게 결정할까?
1. 스케줄링 알고리즘을 평가하기 위해서 고려해야 할 특성
스케줄링 알고리즘을 평가할 때 고려해야 할 주요 특성은 다음과 같습니다.
- 프로세서 사용률: 프로세서를 최대한 활용하는 비율을 의미합니다.
- 처리율 (Throughput): 일정 시간 동안 완료된 프로세스의 개수입니다.
- 반환시간 (Turnaround Time): 프로세스가 시스템에 들어온 후 종료될 때까지 걸린 시간입니다.
- 대기시간 (Waiting Time): 준비 큐에서 대기한 총 시간입니다.
- 반응시간 (Response Time): 요청이 들어온 후 첫 번째 응답이 나올 때까지 걸린 시간입니다.
2. 우선순위 스케줄링 방식
우선순위 스케줄링(Priority Scheduling)은 준비 큐에 프로세스가 도착하면, 도착한 프로세스의 우선순위와 현재 실행 중인 프로세스의 우선순위를 비교하여 우선순위가 가장 높은 프로세스에 프로세서를 할당하는 방식입니다.
- 우선순위가 동일한 프로세스가 준비 큐로 들어오면 FIFO(First In First Out) 방식으로 스케줄링됩니다.
3. 우선순위 결정법
우선순위를 결정하는 방식은 내부적 요인과 외부적 요인으로 나뉩니다.
1) 내부적 우선순위 결정
시스템 내부에서 자동으로 우선순위를 부여하는 방식으로 다음 요소를 고려합니다.
- 제한 시간
- 기억장소 요청량
- 사용 파일 수
- 평균 프로세서 버스트에 대한 평균 입출력 버스트의 비율
2) 외부적 우선순위 결정
운영체제 외부에서 우선순위를 부여하는 방식으로 다음 요소를 고려합니다.
- 프로세스의 중요성
- 사용료를 많이 낸 사용자
- 작업을 지원하는 부서
- 정책적 요인
4. 선점형과 비선점형 우선순위 스케줄링
우선순위 스케줄링은 선점형(Preemptive) 또는 비선점형(Non-Preemptive) 방식 모두 구현할 수 있습니다.
1) 선점형 우선순위 스케줄링
- 실행 중인 프로세스보다 더 높은 우선순위를 가진 프로세스가 도착하면, 현재 실행 중인 프로세스를 중단하고 새로운 프로세스를 실행합니다.
2) 비선점형 우선순위 스케줄링
- 실행 중인 프로세스가 자신의 작업을 마칠 때까지 계속 실행됩니다.
- 새로운 프로세스가 도착해도 현재 실행 중인 프로세스를 강제로 중지하지 않습니다.
5. 문제점
우선순위 스케줄링의 대표적인 문제점으로 기아 현상(Starvation) 이 발생할 수 있습니다.
- 기아 현상(Starvation):
- 우선순위가 높은 프로세스가 지속적으로 도착하면, 우선순위가 낮은 프로세스는 무한정 대기하게 될 수 있습니다.
해결책: 에이징(Aging) 기법
기아 현상을 방지하기 위해 에이징(Aging) 기법을 사용할 수 있습니다.
- 오래 대기한 프로세스의 우선순위를 점진적으로 증가시켜, 결국에는 실행될 수 있도록 보장합니다.
- 이를 통해 낮은 우선순위의 프로세스도 일정 시간이 지나면 실행될 수 있도록 합니다.