선점형 및 비선점형 스케줄링

선점형 스케줄링과 비선점형 스케줄링의 주요 차이점

  • 선점형 스케줄링에서는 특정 기간 동안 프로세스에 CPU가 할당되고 프로세스가 종료될 때까지 비선점 스케줄링 CPU가 프로세스에 할당됩니다.
  • 선점형 스케줄링에서는 우선순위에 따라 작업을 전환하지만 비선점형 스케줄링에서는 전환이 발생하지 않습니다.
  • 선점형 알고리즘은 프로세스를 준비 상태에서 실행 상태로 전환하는 오버헤드가 있는 반면 비선점형 스케줄링은 이러한 전환 오버헤드가 없습니다.
  • 선점형 스케줄링은 유연한 반면, 비선점형 스케줄링은 엄격합니다.
선점형 스케줄링과 비선점형 스케줄링
선점형 스케줄링과 비선점형 스케줄링

선점형 스케줄링이란 무엇입니까?

선점형 스케줄링은 작업이 대부분 우선순위에 따라 할당되는 스케줄링 방법입니다. 우선순위가 낮은 작업이 계속 실행 중이더라도 우선순위가 낮은 작업을 실행하기 전에 우선순위가 높은 작업을 실행하는 것이 중요한 경우가 있습니다.

이때 우선순위가 낮은 작업은 일정 시간 동안 유지되었다가 우선순위가 높은 작업이 실행을 마치면 다시 시작됩니다.

비선점형 스케줄링이란 무엇입니까?

이러한 유형의 스케줄링 방법에서는 CPU가 특정 프로세스에 할당되었습니다. CPU를 계속 사용하게 하는 프로세스는 컨텍스트를 전환하거나 종료하여 CPU를 해제합니다.

다양한 하드웨어 플랫폼에 사용할 수 있는 유일한 방법입니다. 선점형 스케줄링과 같은 특수 하드웨어(예: 타이머)가 필요하지 않기 때문입니다.

비선점형 스케줄링은 프로세스가 자발적으로 대기 상태에 들어가거나 종료될 때 발생합니다.

선점형 스케줄링과 비선점형 스케줄링: 비교표

다음은 선점형 스케줄링과 비선점형 스케줄링을 직접 비교한 ​​것입니다. OS에서 선점형 스케줄링과 비선점형 스케줄링의 주요 차이점은 다음과 같습니다.

선제적 스케줄링 비선점 스케줄링
프로세서는 현재 프로세스 실행 중에 다른 프로세스를 실행하기 위해 선점될 수 있습니다. 프로세서가 실행을 시작하면 다른 실행을 실행하기 전에 먼저 실행을 완료해야 합니다. 중간에 일시정지할 수 없습니다.
비선점형 스케줄링에 비해 CPU 활용도가 더 효율적입니다. CPU 사용률은 선점형 스케줄링에 비해 효율성이 떨어집니다.
선점형 스케줄링의 대기 시간과 응답 시간이 줄어듭니다. 비선점형 스케줄링 방식의 대기 시간과 응답 시간이 더 높습니다.
선점형 스케줄링이 우선시됩니다. 우선순위가 가장 높은 프로세스는 현재 활용되고 있는 프로세스이다. 프로세스가 실행 중 상태가 되면 작업이 완료될 때까지 해당 프로세스의 상태가 스케줄러에서 삭제되지 않습니다.
선점형 스케줄링은 유연합니다. 비선점형 스케줄링은 엄격합니다.
예: – 가장 짧은 남은 시간부터 먼저, 라운드 로빈 등 예 : 선착순, 최단 작업 우선, 우선순위 스케줄링 등
선점형 스케줄링(Preemptive Scheduling) 알고리즘은 프로세스를 선점하여 스케줄링할 수 있습니다. 비선점형 스케줄링에서는 프로세스를 스케줄링할 수 없습니다.
이 프로세스에서는 특정 기간 동안 프로세스에 CPU가 할당됩니다. 이 프로세스에서는 프로세스가 종료되거나 대기 상태로 전환될 때까지 해당 프로세스에 CPU가 할당됩니다.
선점형 알고리즘은 프로세스를 준비 상태에서 실행 상태로 또는 그 반대로 전환하는 오버헤드가 있습니다. 비선점형 스케줄링에는 프로세스를 준비 상태로 전환하는 오버헤드가 없습니다.

선점형 스케줄링의 장점

선점형 스케줄링 방법의 장점/이점은 다음과 같습니다.

  • 선점형 스케줄링 방법은 보다 강력하므로 하나의 프로세스가 CPU를 독점할 수 없습니다.
  • 중단될 때마다 실행 작업 선택이 다시 고려됩니다.
  • 각 이벤트로 인해 실행 중인 작업이 중단됩니다.
  • OS는 실행 중인 모든 프로세스에서 CPU 사용량이 동일한지 확인합니다.
  • 여기서는 CPU 사용량이 동일합니다. 즉, 실행 중인 모든 프로세스가 CPU를 동일하게 사용합니다.
  • 이 스케줄링 방법은 또한 평균 응답 시간을 즉석에서 개선합니다.
  • 선점형 스케줄링은 다중 프로그래밍 환경에 사용할 때 유용합니다.

비선점형 스케줄링의 장점

비선점형 스케줄링 방법의 장점/이점은 다음과 같습니다.

  • 낮은 스케줄링 오버헤드 제공
  • 높은 처리량을 제공하는 경향이 있음
  • 개념적으로는 매우 간단한 방법이다
  • 스케줄링에 필요한 컴퓨팅 리소스 감소

선점형 스케줄링의 단점

FOLLOwing 선점형 스케줄링의 단점은 다음과 같습니다.

  • 스케줄링을 위해 제한된 컴퓨팅 리소스가 필요합니다.
  • 스케줄러가 실행 중인 작업을 일시 중지하고, 컨텍스트를 전환하고, 새 수신 작업을 전달하는 데 더 많은 시간이 걸립니다.
  • 우선순위가 높은 프로세스가 계속해서 도착하면 우선순위가 낮은 프로세스는 더 오랜 시간을 기다려야 합니다.

비선점형 스케줄링의 단점

비선점형 스케줄링 방식의 단점/단점은 다음과 같습니다.

  • 특히 실시간 작업의 경우 기아 상태로 이어질 수 있습니다.
  • 버그로 인해 컴퓨터가 정지될 수 있습니다.
  • 실시간으로 만들 수 있고 우선순위 스케줄링 어려운
  • 프로세스에 대한 응답 시간이 좋지 않음

비선점형 스케줄링의 예

비선점형 SJF 스케줄링에서는 일단 CPU 주기가 프로세스에 할당되면 프로세스는 대기 상태에 도달하거나 종료될 때까지 이를 보유합니다.

다음을 고려하십시오.wing XNUMX개의 프로세스는 각각 고유한 버스트 시간과 도착 시간을 가지고 있습니다.

프로세스 대기열 버스트 시간 도착 시간
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

단계 0) 시간=0에 P4가 도착하여 실행을 시작합니다.

비선점형 스케줄링의 예

단계 1) 시간= 1에 프로세스 P3이 도착합니다. 그러나 P4를 완료하려면 여전히 2개의 실행 단위가 필요합니다. 계속 실행됩니다.

비선점형 스케줄링의 예

단계 2) 시간 =2에 프로세스 P1이 도착하여 대기 대기열에 추가됩니다. P4는 계속해서 실행됩니다.

비선점형 스케줄링의 예

단계 3) 시간 = 3에서 프로세스 P4는 실행을 완료합니다. P3과 P1의 버스트 시간을 비교합니다. 프로세스 P1은 버스트 시간이 P3에 비해 짧기 때문에 실행됩니다.

비선점형 스케줄링의 예

단계 4) 시간 = 4에 프로세스 P5가 도착하여 대기 대기열에 추가됩니다. P1은 실행을 계속합니다.

비선점형 스케줄링의 예

단계 5) 시간 = 5에 프로세스 P2가 도착하여 대기 대기열에 추가됩니다. P1은 실행을 계속합니다.

비선점형 스케줄링의 예

단계 6) 시간 = 9에서 프로세스 P1은 실행을 완료합니다. P3, P5, P2의 버스트 시간을 비교합니다. 프로세스 P2는 버스트 시간이 가장 낮기 때문에 실행됩니다.

비선점형 스케줄링의 예

단계 7) 시간=10에서 P2가 실행 중이고 P3과 P5가 대기 대기열에 있습니다.

비선점형 스케줄링의 예

단계 8) 시간 = 11에서 프로세스 P2는 실행을 완료합니다. P3과 P5의 버스트 시간을 비교합니다. 버스트 시간이 더 짧기 때문에 프로세스 P5가 실행됩니다.

비선점형 스케줄링의 예

단계 9) 시간 = 15에서 프로세스 P5는 실행을 완료합니다.

비선점형 스케줄링의 예

단계 10) 시간 = 23에서 프로세스 P3는 실행을 완료합니다.

비선점형 스케줄링의 예

단계 11) 위 예의 평균 대기 시간을 계산해 보겠습니다.

Wait time 
P4= 0-0=0
P1=  3-2=1
P2= 9-5=4
P5= 11-4=7
P3= 15-1=14
Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2

선제적 스케줄링의 예

이 내용을 고려해보세요wing 세 가지 프로세스 라운드 로빈

프로세스 대기열 버스트 시간
P1 4
P2 3
P3 5

선제적 스케줄링의 예

단계 1) 실행은 버스트 시간이 1인 프로세스 P4에서 시작됩니다. 여기서 모든 프로세스는 2초 동안 실행됩니다. P2와 P3은 아직 대기 대기열에 있습니다.

선제적 스케줄링의 예

2단계) 시간 =2에서 P1이 대기열 끝에 추가되고 P2가 실행을 시작합니다.

선제적 스케줄링의 예

단계 3) time=4에서 P2는 선점되고 대기열 끝에 추가됩니다. P3이 실행을 시작합니다.

선제적 스케줄링의 예

단계 4) time=6에서 P3는 선점되고 대기열 끝에 추가됩니다. P1이 실행을 시작합니다.

선제적 스케줄링의 예

단계 5) time=8에서 P1의 버스트 시간은 4입니다. 실행이 완료되었습니다. P2가 실행을 시작합니다.

선제적 스케줄링의 예

단계 6) P2의 버스트 시간은 3입니다. 이미 2 간격 동안 실행되었습니다. 시간=9에서 P2는 실행을 완료합니다. 그런 다음 P3은 완료될 때까지 실행을 시작합니다.

선제적 스케줄링의 예

단계 7) 위 예의 평균 대기 시간을 계산해 보겠습니다.

Wait time 
P1= 0+ 4= 4
P2= 2+4= 6
P3= 4+3= 7