우선순위 스케줄링 알고리즘: 선점형, 비선점형

⚡ 스마트 요약

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

  • 🎯 정의: 프로세스는 우선순위에 따라 예약되며, 우선순위가 높은 작업이 우선순위가 낮은 작업보다 먼저 실행됩니다.
  • 🔢 우선순위 번호: 숫자가 낮을수록 일반적으로 우선순위가 높다는 의미입니다.
  • ⏸️ 선제적: 우선순위가 더 높은 요청이 도착하면 현재 실행 중인 우선순위가 더 낮은 프로세스가 중단될 수 있습니다.
  • 비선제적: 실행 중인 프로세스는 종료되거나 컨텍스트가 전환될 때까지 CPU를 계속 점유합니다.
  • 이점: 중요 프로세스는 빠르게 실행되며, 상대적 중요도에 따라 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를 기다려야 합니다.
  • 우선순위가 더 높은 새로운 프로세스가 준비 대기열에 계속 들어오면 대기 상태에 있는 프로세스는 오랜 시간 동안 기다려야 할 수도 있습니다.

자주 묻는 질문

기아 현상은 우선순위가 낮은 프로세스가 우선순위가 높은 프로세스가 계속 도착하는 동안 무한정 대기할 때 발생합니다. 에이징(Aging)은 오랫동안 대기한 프로세스의 우선순위를 점진적으로 높여 모든 프로세스가 결국 실행되도록 함으로써 이 문제를 해결합니다.

대부분의 운영 체제에서 우선순위 번호가 낮을수록 우선순위가 높습니다. 예를 들어 우선순위 1인 프로세스는 우선순위 3인 프로세스보다 먼저 실행됩니다. 하지만 일부 시스템에서는 이 규칙이 반대로 적용되는 경우도 있으므로 항상 사용되는 규칙을 확인해야 합니다.

우선순위는 메모리 요구량, 시간 요구 사항, CPU 버스트와 같은 요소를 사용하여 내부적으로 할당하거나, 중요도, 비용 또는 마감일을 기준으로 사용자 또는 관리자가 외부적으로 할당할 수 있습니다. 우선순위는 정적(고정)일 수도 있고 동적(실행 시 변경)일 수도 있습니다.

AI는 작업량 패턴과 마감일을 학습하여 프로세스 우선순위를 동적으로 할당하고 조정할 수 있습니다. 이를 통해 중요한 작업이 제시간에 완료되고, 작업이 처리되지 못하는 상황(일자리 부족으로 인한 손실)의 위험을 줄여 복잡하고 변화무쌍한 시스템에서 전반적인 처리량과 응답성을 향상시킬 수 있습니다.

네. AI는 대기 시간을 모니터링하고 대기 시간이 긴 프로세스의 우선순위를 자동으로 높여 마치 스마트 노화처럼 작동합니다. 혼잡을 예측함으로써 고정된 규칙보다 공정성과 성능의 균형을 더 잘 유지하여 우선순위가 낮은 작업이 무한정 지연되는 것을 방지합니다.

이 게시물을 요약하면 다음과 같습니다.