O(n) 스케줄러

O(n) scheduler
Linux 커널의 단순화된 구조에서 "O(n) 스케줄러"(프로세스 스케줄러)의 위치.

O(n[1]) 스케줄러는 버전 2.4와 2.6 사이의 Linux 커널에서 사용되는 스케줄러입니다.버전 2.6.0 이후 O(1) 스케줄러로 대체되었으며 2.6.23에서는 현재의 Complete Fair Scheduler(CFS; 완전 균등화 스케줄러)로 대체되었습니다.

알고리즘.

이 스케줄러는 프로세서 시간을 에폭으로 나눕니다.각 에폭 내에서 모든 태스크는 타임슬라이스까지 실행할 수 있습니다.태스크가 모든 타임슬라이스를 사용하지 않는 경우 스케줄러는 남은 타임슬라이스의 절반을 추가하여 다음 에폭에서 더 오래 실행할 수 있도록 합니다.

이점

이 스케줄러는 순환 큐를 기반으로 이전에 사용되었던 매우 단순한 스케줄러에 비해 더 우수했습니다.

단점들

프로세스 수가 많을 경우 스케줄러는 프로세서 시간 자체를 현저하게 사용할 수 있습니다.실행할 다음 작업을 선택하려면 현재 계획된 모든 작업을 반복해야 하므로 스케줄러는 O(n) 시간 내에 실행됩니다.여기서 n은 계획된 프로세스의 수입니다.

「 」를 참조해 주세요.

레퍼런스