우선순위 스케줄링 알고리즘: 선점형, 비선점형 예
우선순위 스케줄링이란 무엇입니까?
우선순위 스케줄링 우선순위에 따라 프로세스를 스케줄링하는 방법입니다. 이 알고리즘에서 스케줄러는 우선순위에 따라 작업할 작업을 선택합니다.
우선 순위가 높은 프로세스가 먼저 수행되어야 하는 반면, 우선 순위가 같은 작업은 라운드 로빈 또는 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보다 우선순위가 높습니다. 실행은 버스트 시간이 1인 프로세스 P4에서 시작됩니다.
단계 1) 시간=1에서는 새 프로세스가 도착하지 않습니다. 실행은 P1에서 계속됩니다.
단계 2) 시간 2에는 새 프로세스가 도착하지 않으므로 P1을 계속할 수 있습니다. P2가 대기 대기열에 있습니다.
단계 3) 시간 3에서는 새 프로세스가 도착하지 않으므로 P1을 계속할 수 있습니다. P2 프로세스가 여전히 대기 대기열에 있습니다.
단계 4) 시간 4에서 P1은 실행을 완료했습니다. P2가 실행을 시작합니다.
단계 5) 시간 = 5에는 새로운 프로세스가 도착하지 않으므로 P2를 계속합니다.
단계 6) 시간=6에 P3이 도착합니다. P3은 우선순위(1)를 갖는 P2에 비해 더 높은 우선순위(2)를 갖습니다. 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은 우선순위가 더 높으므로 실행을 계속합니다.
방법 | 우선 | 버스트 시간 | 도착 시간 |
---|---|---|---|
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은 우선순위가 높으므로 계속 실행됩니다.
단계 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) 시간 =14에 P2 프로세스가 실행을 완료했습니다. P4와 P5는 대기 상태입니다. P5가 가장 높은 우선순위를 갖고 실행을 시작합니다.
단계 15) 시간 =15에서 P5는 실행을 계속합니다.
단계 16) 시간= 16에 P5의 실행이 완료됩니다. P4는 남은 유일한 프로세스입니다. 실행이 시작됩니다.
단계 17) 시간 =20에서 P5는 실행을 완료했으며 프로세스가 남지 않았습니다.
단계 18) 위 예의 평균 대기 시간을 계산해 보겠습니다.
대기 시간 = 시작 시간 – 도착 시간 + 다음 버스트에 대한 대기 시간
P1 = o - o = o P2 =4 - o + 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를 기다려야 합니다.
- 우선순위가 더 높은 새로운 프로세스가 준비 대기열에 계속 들어오면 대기 상태에 있는 프로세스는 오랜 시간 동안 기다려야 할 수도 있습니다.
요약
- 우선순위 스케줄링은 우선순위에 따라 프로세스를 스케줄링하는 방법입니다. 이 알고리즘에서 스케줄러는 우선순위에 따라 작업할 작업을 선택합니다.
- 우선순위 선점형 스케줄링에서는 작업이 대부분 우선순위에 따라 할당됩니다.
- 우선순위 비선점형 스케줄링 방식에서는 특정 프로세스에 CPU를 할당합니다.
- 우선순위에 따라 프로세스가 실행되므로 우선순위가 높은 프로세스는 오래 기다릴 필요가 없으므로 시간이 절약됩니다.
- 우선순위가 높은 프로세스가 CPU 시간을 많이 사용하면 우선순위가 낮은 프로세스가 중단되어 무기한 연기될 수 있습니다.