라운드로빈 스케줄링 예제
2 agosto, 2019일반 일정 개념에 대한 이해를 강화하기 위해 이 장에서 설명한 라운드 로빈 에서 운영 체제는 일반 인터럽트(`클럭 틱`)에 의해 구동됩니다. 작업은 실행을 위해 고정된 시퀀스에서 선택됩니다. 각 클럭 틱에서 현재 작업이 중단되고 다음 작업이 실행을 시작할 수 있습니다. 모든 작업은 동등한 중요성으로 처리되며 CPU 시간 슬롯을 차례로 기다립니다. 작업은 완료될 때까지 실행할 수 없지만 `선점`(즉, 비행 중 실행이 중단됨)입니다. 이는 `선제적` 스케줄러의 예입니다. 이 현상에 취약하지 않은 하나의 스케줄링 알고리즘은 라운드 로빈 스케줄링 프로토콜입니다. 크든 작든 한 번에 하나의 양자보다 더 오래 자원을 확보하고 보유할 수 있는 직업이 없기 때문에 더 큰 일자리는 더 작은 일자리를 굶어버리지 않을 것입니다. 이 사실은 라운드 로빈 스케줄링 프로토콜을 가변 부하로 리소스 활용도를 측정하기위한 좋은 알고리즘으로 만듭니다. FCFS와 라운드 로빈 스케줄링 프로토콜을 서로 비교하여 매우 가변적이고 상호 관계가 높은 로드를 비교한다면 로드가 더 유사한 방식으로 수행되는 알고리즘의 상관 관계가 높아짐에 따라 이를 확인할 수 있습니다. 반면에 데이터가 더 가변화됨에 따라 라운드 로빈 스케줄링 프로토콜은 FCFS보다 더 잘 수행됩니다. 컴퓨터 시스템의 성능을 결정할 때 일반적인 측정값은 처리량입니다. 다음 토론에서는 이 작업이 시간 간격(예: 분당 CPU를 떠나는 작업 수)과 같은 시간 간격 동안 아키텍처에 대한 관심 지점을 통과하는 평균 작업 수라고 간주합니다.
대부분의 경우 리소스가 완전히 사용중일 때 처리량에 대한 최대 값을 실현합니다. – 시간 양자무한대로되면, 라운드 로빈 스케줄링 알고리즘은 점차 FCFS 스케줄링 알고리즘이된다. 프로세스를 공정하게 예약하기 위해 라운드 로빈 스케줄러는 일반적으로 시간 공유를 사용하여 각 작업에 시간 슬롯 또는 퀀텀[4](CPU 시간 허용)을 제공하고 그때까지 완료되지 않으면 작업을 중단합니다. 다음에 해당 프로세스에 시간 슬롯이 할당되면 작업이 다시 시작됩니다. 프로세스가 종료되거나 어트리뷰트된 시간 퀀텀 동안 대기 상태로 변경되면 스케줄러는 실행할 준비 대기열의 첫 번째 프로세스를 선택합니다. 시간 공유가 없거나 작업 규모에 비해 퀀타가 큰 경우 큰 작업을 생산하는 프로세스가 다른 프로세스보다 유리합니다. 이 시점까지 논의된 세 가지 스케줄링 알고리즘은 매우 다양한 동작을 가진 매우 다양한 유형의 응용 프로그램을 가진 최신 범용 시스템의 맥락에서 매우 제한적입니다. 이러한 스케줄링 알고리즘은 시스템 자체의 역학 및 내 프로세스와 관련된 컨텍스트 요인에 따라 프로세스를 선택하는 데 필요한 정교함이 부족합니다. 일부 고급 알고리즘은 프로세스 우선 순위, 기한 또는 예상 런타임 또는 누적 된 런타임 또는 다양한 기타 요인을 고려하여 개별 프로세스 및 시스템 전체의 성능을 향상시킵니다.
라운드 로빈 스케줄링은 그러나 많은 유사한 프로세스가 동일한 중요성을 가진 시스템에 이상적으로 적합하며, 간단한 턴 기반 접근 방식의 결과로 한 프로세스가 “기아가 없는”이라는 장점이 있습니다. 다른 사람의 비용으로 CPU, 이는 연장 된 기간 동안 발생할 수 있습니다, 아마도 무기한 다른 계획에서.