정의
- 우선순위 스케줄링: 우선순위가 높은 프로세스에게 CPU를 할당하는 방식이다.
세부사항
- SJF와의 관계: SJF(Shortest-Job-First) 스케줄링은 일반적인 우선순위 스케줄링의 특별한 경우로, CPU 버스트가 작은 프로세스에게 높은 우선순위를 부여한다.
- 동일 우선순위 처리: 우선순위가 같은 경우 FCFS(First-Come, First-Served) 방식을 사용할 수 있다.
우선순위 유형
- 정적 우선순위(Static Priority): 프로세스의 우선순위가 실행 동안 변하지 않습니다. 구현이 간단하며 오버헤드가 낮다.
- 동적 우선순위(Dynamic Priority): 시스템의 상황에 따라 우선순위가 동적으로 변동된다. 응답성이 향상되지만 구현이 복잡하고 오버헤드가 많다.
- 구매한 우선순위(Purchased Priority): 우선순위를 추가 비용을 지불하여 구매하는 방식이다.
스케줄링 방식
- 비선점형(Non-preemptive): 실행 중인 프로세스와 비교하지 않고 계속 실행한다.
- 선점형(Preemptive): 준비 큐에 있는 프로세스들과 실행 중인 프로세스의 우선순위를 새로 도착한 프로세스의 우선순위와 비교하여, 새로 도착한 프로세스의 우선순위가 더 높을 경우 새 프로세스를 실행한다.
문제점 및 해결책
- 무한 대기 또는 아사 현상 문제: 일부 프로세스가 무한정 대기할 수 있는 문제다.
- 해결책: 에이징(Aging) 이 있으며, 오래 기다린 프로세스의 우선순위를 높여준다.
'운영체제' 카테고리의 다른 글
Highest Response-Ratio Next (HRN) 스케줄링 (0) | 2024.04.22 |
---|---|
데드라인 스케줄링 (Deadline Scheduling) (0) | 2024.04.21 |
선점형 SJF 스케줄링 (SRTF: Shortest-Remaining Time First) (0) | 2024.04.21 |
SJF 스케줄링 (Shortest-Job-First Scheduling) (0) | 2024.04.21 |
CPU 스케줄링 (1) | 2024.04.21 |