RR(Round Robin)은 각 프로세스에 퀀텀이라는 고정된 시간 조각이 할당되는 선점형 CPU 스케줄링 알고리즘입니다. 도착 시간이 0인 표준 라운드 로빈과 달리 이 변형은 서로 다른 시간에 도착하는 프로세스를 처리하므로 준비 대기열이 동적으로 변경되므로 일정을 더욱 복잡하게 만듭니다.
선점형 스케줄링에서는 실행 중인 프로세스를 중단하고 다시 준비 대기열로 이동할 수 있습니다. 라운드 로빈은 각 프로세스에 CPU 시간을 동일하게 분배함으로써 공정성을 보장하고, 기아를 방지하는 동시에 대화형 시스템에 대한 좋은 응답 시간을 유지합니다.
다양한 도착 시간에 따른 라운드 로빈 작동 방법
프로세스의 도착 시간이 서로 다른 경우 알고리즘은 다음 단계를 따릅니다.
-
프로세스는 도착 시간에 따라 준비 대기열에 들어갑니다
-
CPU는 양자 기간 동안 사용 가능한 첫 번째 프로세스를 제공합니다
-
프로세스가 퀀텀 내에서 완료되면 종료됩니다
-
완료되지 않은 경우 준비완료 큐의 끝으로 이동
-
새로 도착한 사람들은 준비 대기열에 합류하여 차례를 기다립니다.
-
컨텍스트 전환은 선점된 프로세스의 상태를 저장합니다
주요 기능
-
기아 방지 모든 프로세스는 결국 CPU 시간을 얻습니다
-
공정한 스케줄링 모든 프로세스에 대해 동일한 시간 할당
-
좋은 응답 시간 대화형 및 실시간 시스템에 적합
-
컨텍스트 전환 오버헤드 퀀텀이 작을수록 전환 비용이 증가합니다
예 1 양자 시간 =2
도착 시간과 버스트 시간이 서로 다른 세 가지 프로세스를 고려해 보세요.
간트차트? 라운드 로빈(양자 =2) P1 P2 P3 P1 P2 P3 0 2 4 6 8 9 14
단계별 실행
평균 시간 계산
평균 처리 시간 =(8 + 8 + 12) / 3 =9.33 단위
평균 대기 시간 =(4 + 5 + 5) / 3 =4.67 단위
예 2 양자 시간 =4
더 큰 양자 크기:
간트차트? 라운드 로빈(양자 =4) P2 P3 P1 P2 P3 P1 0 4 8 12 15 20 24
평균 처리 시간 =(22 + 15 + 19) / 3 =18.67 단위
평균 대기 시간 =(14 + 8 + 10) / 3 =10.67 단위
결론
도착 시간이 서로 다른 라운드 로빈 스케줄링은 동적 프로세스 도착을 처리하는 동시에 공정한 CPU 할당을 제공합니다. 양자 크기는 성능에 큰 영향을 미칩니다. 퀀텀이 작을수록 응답 시간이 향상되지만 컨텍스트 전환 오버헤드가 증가하는 반면, 퀀텀이 클수록 공정성은 감소하지만 처리량은 향상될 수 있습니다.