우선순위 스케줄링 알고리즘: 선점형, 비선점형
⚡ 스마트 요약
우선순위 스케줄링은 우선순위에 따라 프로세스를 선택하는 CPU 스케줄링 방식으로, 우선순위가 높은 작업을 먼저 실행합니다. 이는 선점형 또는 비선점형일 수 있으며, 우선순위가 같은 프로세스는 선착순 또는 라운드 로빈 방식으로 처리됩니다.

우선순위 스케줄링이란 무엇입니까?
우선순위 스케줄링 우선순위에 따라 프로세스를 스케줄링하는 방법입니다. 이 알고리즘에서 스케줄러는 우선순위에 따라 작업할 작업을 선택합니다.
우선 순위가 높은 프로세스가 먼저 수행되어야 하는 반면, 우선 순위가 같은 작업은 라운드 로빈 또는 FCFS 기반으로 수행됩니다. 우선 순위는 메모리 요구 사항, 시간 요구 사항 등에 따라 다릅니다.
우선순위 스케줄링의 유형
우선순위 스케줄링은 크게 두 가지 유형으로 나뉩니다.
선제적 스케줄링
선점형 스케줄링에서는 작업이 대부분 우선순위에 따라 할당됩니다. 우선순위가 낮은 작업이 계속 실행 중이더라도 우선순위가 낮은 작업을 실행하기 전에 우선순위가 높은 작업을 실행하는 것이 중요한 경우가 있습니다. 우선순위가 낮은 작업은 일정 시간 동안 유지되었다가 우선순위가 높은 작업이 실행을 마치면 다시 시작됩니다.
비선점형 스케줄링
이러한 스케줄링 방식에서는 CPU가 특정 프로세스에 할당됩니다. CPU를 점유하고 있는 프로세스는 컨텍스트를 전환하거나 종료함으로써 CPU를 해제합니다. 이 방식은 다양한 하드웨어 플랫폼에서 사용할 수 있는 유일한 방법입니다. 선점형 스케줄링처럼 타이머와 같은 특수 하드웨어가 필요하지 않기 때문입니다.
우선순위 스케줄링의 특징
- 우선순위에 따라 프로세스를 예약하는 CPU 알고리즘입니다.
- 그것은에서 사용됩니다 Opera배치 프로세스를 수행하기 위한 시스템입니다.
- 동일한 우선순위를 갖는 두 개의 작업이 READY인 경우 해당 작업은 첫 번째와 첫 번째 서비스 기초.
- 우선순위 스케줄링에서는 우선순위 수준을 나타내는 각 프로세스에 번호가 할당됩니다.
- 숫자가 낮을수록 우선순위가 높습니다.
- 이러한 유형의 스케줄링 알고리즘에서는 현재 실행 중인 프로세스보다 우선순위가 높은 새로운 프로세스가 도착하면 현재 실행 중인 프로세스가 선점됩니다.
우선순위 스케줄링의 예
다음과 같은 다섯 가지 프로세스 P1부터 P5를 고려해 보십시오. 각 프로세스는 고유한 우선순위, 시작 시간 및 도착 시간을 가지고 있습니다.
| 방법 | 우선 | 버스트 시간 | 도착 시간 |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 3 | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
단계 0) 시간 = 0에 프로세스 P1과 P2가 도착합니다. P1은 P2보다 우선순위가 높습니다. 따라서 버스트 시간이 4인 프로세스 P1부터 실행이 시작됩니다.
단계 1) 시간 = 1일 때 새로운 프로세스가 도착하지 않습니다. P1 프로세스로 실행이 계속됩니다.
단계 2) 시간 2에는 새 프로세스가 도착하지 않으므로 P1을 계속할 수 있습니다. P2가 대기 대기열에 있습니다.
단계 3) 시간 3에는 새로운 프로세스가 도착하지 않으므로 P1을 계속 진행할 수 있습니다. P2 프로세스는 여전히 대기열에 있습니다.
단계 4) 시간 4에서 P1은 실행을 완료했습니다. P2가 실행을 시작합니다.
단계 5) 시간 = 5에서 새로운 프로세스가 도착하지 않으므로 P2를 계속 진행합니다.
단계 6) 시간 = 6에 P3가 도착합니다. P3는 우선순위(2)를 가진 P2에 비해 우선순위(1)가 높습니다. P2가 선점되고 P3가 실행을 시작합니다.
| 방법 | 우선 | 버스트 시간 | 도착 시간 |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1개 중 3개 대기 중 | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
단계 7) 7시 시점에 새로운 프로세스가 도착하지 않았으므로 P3을 계속 진행합니다. P2는 대기열에 있습니다.
단계 8) 시간 = 8에서 새로운 프로세스가 도착하지 않았으므로 P3를 계속 진행할 수 있습니다.
단계 9) 시간 = 9에서 새로운 프로세스가 발생하지 않으므로 P3를 계속 진행할 수 있습니다.
단계 10) 시간 간격 10에서 새로운 프로세스가 발생하지 않으므로 P3를 계속 진행합니다.
단계 11) 시간 11에 P4가 우선순위 4로 도착합니다. P3의 우선순위가 더 높으므로 P3가 실행을 계속합니다.
| 방법 | 우선 | 버스트 시간 | 도착 시간 |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1개 중 3개 대기 중 | 0 |
| P3 | 1 | 2개 중 7개 대기 중 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
단계 12) 시간 12에 P5가 도착합니다. P3의 우선순위가 더 높으므로 P3가 계속 실행됩니다.
단계 13) 시간 13에 P3 프로세스가 실행을 완료합니다. 준비 큐에는 P2, P4, P5 프로세스가 있습니다. P2와 P5는 우선순위가 같습니다. P2의 도착 시간이 P5보다 빠르므로 P2가 실행을 시작합니다.
| 방법 | 우선 | 버스트 시간 | 도착 시간 |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1개 중 3개 대기 중 | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
단계 14) 시간 t=14에서 P2 프로세스의 실행이 완료되었습니다. P4와 P5는 대기 상태입니다. P5가 가장 높은 우선순위를 가지므로 실행을 시작합니다.
단계 15) 시간 = 15에서 P5는 실행을 계속합니다.
단계 16) 시간 t=16에서 P5 프로세스가 실행을 완료합니다. 이제 P4 프로세스만 남았고, P4 프로세스가 실행을 시작합니다.
단계 17) 시간 = 20에서 P4의 실행이 완료되었으며 더 이상 남은 프로세스가 없습니다.
단계 18) 위 예시의 평균 대기 시간을 계산해 보겠습니다.
대기 시간 = 시작 시간 – 도착 시간 + 다음 버스트에 대한 대기 시간
P1 = 0 - 0 = 0 P2 = 4 - 0 + 7 = 11 P3 = 6 - 6 = 0 P4 = 16 - 11 = 5 Average Waiting time = (0 + 11 + 0 + 5 + 2)/5 = 18/5 = 3.6
우선순위 스케줄링의 장점
우선순위 스케줄링 방식을 사용하는 이점은 다음과 같습니다.
- 사용하기 쉬운 일정 관리 방식입니다.
- 프로세스는 우선순위에 따라 실행되므로 우선순위가 높은 프로세스는 오래 기다릴 필요가 없어 시간을 절약할 수 있습니다.
- 이 방법은 각 과정의 상대적 중요성을 정확하게 정의할 수 있는 좋은 메커니즘을 제공합니다.
- 시간과 리소스 요구사항이 변동하는 애플리케이션에 적합합니다.
우선순위 스케줄링의 단점
우선순위 기반 일정 관리의 단점은 다음과 같습니다.
- 시스템이 결국 충돌하면 우선 순위가 낮은 모든 프로세스가 손실됩니다.
- 우선순위가 높은 프로세스가 CPU 시간을 많이 사용하면 우선순위가 낮은 프로세스가 중단되어 무기한 연기될 수 있습니다.
- 이 스케줄링 알고리즘은 일부 낮은 우선순위 프로세스를 무기한 대기하게 할 수 있습니다.
- 실행 준비가 되면 프로세스가 차단되지만 현재 다른 프로세스가 실행 중이므로 CPU를 기다려야 합니다.
- 우선순위가 더 높은 새로운 프로세스가 준비 대기열에 계속 들어오면 대기 상태에 있는 프로세스는 오랜 시간 동안 기다려야 할 수도 있습니다.


















