추천, 2024

에디터의 선택

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

CPU가 유휴 상태 일 때마다 CPU에 프로세스를 할당하는 것은 CPU 스케줄러의 책임입니다. CPU 스케줄러는 준비 대기열에서 프로세스를 선택하고 CPU에 프로세스를 할당합니다. 프로세스가 실행 상태에서 준비 상태로 또는 대기 상태에서 준비 상태로 전환 할 때 발생하는 예약을 선점 예약 이라고합니다. 프로세스가 종료되거나 상태가 전환 될 때까지 기다리는 것으로 바뀌면 발생하는 스케줄링을 비 선점 형 스케줄링 이라고합니다. 선점 형과 비 선점 형 스케줄링의 기본적인 차이점은 이름 자체에 있습니다. 선점 예약은 선점 될 수 있습니다. 프로세스를 스케줄 할 수 있습니다. 비 선점 형 스케줄링에서는 프로세스를 스케줄 할 수 없습니다.

선취 적 및 비 선제 적 스케쥴링 간의 차이점을 아래 비교 차트의 도움으로 간단히 설명 합니다.

비교 차트

비교의 근거선점 예약비 선점 예약
기본자원은 제한된 시간 동안 프로세스에 할당됩니다.일단 자원이 프로세스에 할당되면 프로세스는 버스트 시간을 완료하거나 대기 상태로 전환 할 때까지 프로세스를 보유합니다.
일시 정지프로세스가 중간에 중단 될 수 있습니다.프로세스가 종료되거나 대기 상태로 전환 될 때까지 프로세스를 인터럽트 할 수 없습니다.
굶주림우선 순위가 높은 프로세스가 준비 대기열에 자주 도착하면 우선 순위가 낮은 프로세스가 굶어 버릴 수 있습니다.긴 버스트 시간을 가진 프로세스가 CPU를 실행중인 경우 CPU 버스트 시간이 적은 다른 프로세스가 굶어 버릴 수 있습니다.
간접비선점 형 스케줄링은 프로세스 스케줄링에 오버 헤드가 있습니다.비 선점 형 스케줄링에는 오버 헤드가 없습니다.
적응성선점 예약은 유연합니다.비 선점 형 스케줄링은 엄격합니다.
비용선점 예약은 비용과 관련이 있습니다.비 선점 형 스케줄링은 비용 연관성이 없습니다.

선점 예약의 정의

선점 형 스케줄링은 프로세스가 실행 상태 에서 준비 상태로 전환 되거나 대기 상태 에서 준비 상태로 전환되는 상황에서 수행 할 수있는 스케줄링입니다. 여기서 리소스 (CPU주기)는 제한된 시간 동안 프로세스에 할당 된 다음 제거됩니다. CPU 버스트 시간이 남아 있으면 프로세스는 다시 준비 대기열에 다시 배치됩니다. 프로세스는 다음에 실행 기회가 생길 때까지 대기열에 남아 있습니다.

우선 순위가 높은 프로세스가 준비 대기열에 도착하면 현재 프로세스가 버스트 시간을 완료 할 때까지 기다릴 필요가 없습니다. 대신, 현재 프로세스는 실행 중간에 인터럽트되고 우선 순위가 높은 프로세스가 CPU 사이클을 활용할 때까지 준비 대기열에 배치됩니다. 이 방법으로 준비 대기열의 각 프로세스는 CPU를 실행할 시간을 갖습니다. 선점 형 스케줄링을 유연하게 만들지 만 프로세스를 실행 상태에서 준비 상태 및 바이스 - 운로 전환하는 오버 헤드가 증가합니다.

선점 예약에 사용되는 알고리즘은 라운드 로빈 (Round Robin)입니다. SJF (Shortest Job First) 및 우선 순위 예약은 선점 일정에 따라 결정될 수도 있고 그렇지 않을 수도 있습니다.

Preemptive Scheduling의 예를 들어 보겠습니다. 아래 그림을보십시오. 우리는 P0, P1, P2, P3의 네 가지 프로세스를 가지고 있습니다. 그 중 P2는 시간 0에 도착합니다. 따라서 대기열에 다른 프로세스가 없으므로 CPU가 프로세스 P2에 할당됩니다. 한편, P2가 실행 중이고, P3은 시간 1에 도달하고, 이제 P3 (4 밀리 초)에 요구되는 시간보다 긴 P2 프로세스 (5 밀리 초)의 잔여 시간이 도달한다. 따라서 CPU는 프로세서 P3에 할당됩니다.

한편 P3이 실행 중일 때 프로세스 P1은 시간 2에 도착합니다. 이제 P3 (3 밀리 초)의 남은 시간은 프로세스 P1 (4 밀리 초) 및 P2 (5 밀리 초)에 필요한 시간보다 짧습니다. 따라서 P3은 계속 허용됩니다. P3이 계속 진행하는 동안 P0은 시간 3에 도착하고, P3 (2 밀리 초)의 나머지 시간은 P0 (2 밀리 초)에 필요한 시간과 같습니다. 따라서 P3은 계속되고 P3이 종료 된 후 CPU는 다른 버스트 시간보다 적은 버스트 시간을 가지므로 P0에 할당됩니다. P0 종료 후 CPU는 P1에 할당 된 다음 P2에 할당됩니다.

비 선점 적 스케쥴링의 정의

비 선점 형 스케줄링은 프로세스가 종료 되거나 프로세스가 실행 상태 에서 대기 상태로 전환 될 때 적용될 수 있습니다. Non-Preemptive Scheduling에서는 리소스 (CPU)가 프로세스에 할당되면 프로세스가 CPU를 종료하거나 대기 상태에 도달 할 때까지 프로세스를 유지합니다.

선점 형 스케줄링과 달리 비 선점 형 스케줄링은 실행 중간에 CPU를 실행하는 프로세스를 방해하지 않습니다. 대신 프로세스가 CPU 버스트 시간을 완료 할 때까지 기다린 다음 CPU를 다른 프로세스에 할당 할 수 있습니다.

비 선점 (non-preemptive) 스케줄링에서 CPU 버스트 시간이 긴 프로세스가 실행중인 경우 다른 프로세스는 준비된 큐에있는 프로세스의 평균 대기 시간을 증가시키는 오랜 시간 동안 기다려야합니다. 그러나 비 선점 형 스케줄링은 프로세스를 준비 대기열에서 CPU로 전환하는 오버 헤드가 없지만 우선 순위가 높은 프로세스에 대해서는 실행 프로세스가 선점되지 않으므로 일정을 엄격하게 만듭니다.

위의 스케줄링 예제를 비 선점 방식으로 해결해 보겠습니다. 처음에는 프로세스 P2가 시간 0에 도착하므로 CPU는 프로세스 P2에 할당되며 실행에는 6 밀리 초가 걸립니다. 모든 프로세스 즉, P0, P1, P3 사이에서 준비 대기열에 도착합니다. 그러나 프로세스 P2가 CPU 버스트 시간을 완료 할 때까지 모두 기다립니다. 그런 다음 P2 즉 P3 이후에 도착한 프로세스는 버스트 시간이 끝날 때까지 CPU를 할당받습니다. 마찬가지로, P1이 실행되고, 나중에 P0을 처리하기 위해 CPU가 제공됩니다.

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

  1. 선점 형 스케줄링과 비 선점 형 스케줄링의 기본적인 차이점은 선점 형 스케줄링에서 CPU가 제한된 시간 동안 프로세스에 할당된다는 것입니다. 비 선점 형 스케줄링에서 CPU는 프로세스가 종료 되거나 대기 상태로 전환 될 때까지 프로세스에 할당됩니다.
  2. 선점 형 스케줄링에서의 실행 프로세스는 실행 중간에 중단 되는 반면, 비 선점 형 스케줄링에서의 실행 프로세스는 실행 도중에 중단되지 않습니다 .
  3. 선점 형 스케줄링은 프로세스를 준비 상태에서 실행 상태, 바이스 (vise-verse)로 전환하고 준비 대기열을 유지 관리하는 오버 헤드 를 가지고 있습니다. 한편, 비 선점 형 스케줄링은 프로세스를 실행 상태에서 준비 상태로 전환하는 오버 헤드없습니다 .
  4. 우선 순위 스케줄링에서 우선 순위가 높은 프로세스가 준비된 대기열에 자주 도착하면 우선 순위가 낮은 프로세스가 오래 대기해야하며 굶어 야합니다. 다른 한편, 비 선점 형 스케줄링에서, CPU가 더 큰 버스트 시간을 갖는 프로세스에 할당되면, 작은 버스트 시간을 갖는 프로세스는 굶어 야 할 수도있다.
  5. 사전 실행 스케줄링은 매우 유연 합니다. 중요한 프로세스가 현재 실행중인 프로세스와 상관없이 CPU가 준비 대기열에 도착할 때 CPU에 액세스 할 수 있기 때문입니다. 비 선점 형 스케줄링은 중요한 프로세스가 준비 대기열에 들어가더라도 CPU를 실행하는 프로세스가 방해받지 않기 때문에 엄격 합니다.
  6. 선점 형 스케쥴링은 비 선제 형 스케쥴링이 아닌 공유 데이터의 무결성을 유지해야하므로 비용 연관성이 있습니다.

결론:

선제 적이 아닌 스케줄링이 비 선점 스케줄링이나 바이스 - 운문보다 낫다는 것은 아닙니다. 모두 스케줄링이 프로세스의 평균 대기 시간을 최소화하고 CPU 사용을 최대화하는 방법에 달려 있습니다.

Top