컴플리틀리 페어 스케줄러

컴플리틀리 페어 스케줄러(영어: Completely Fair Scheduler, CFS)는 리눅스 커널의 2.6.23 (2007년 10월) 릴리스에 병합된 프로세스 스케줄러이며 현재의 기본 스케줄러이다. 프로세스 실행을 위해 CPU 자원 할당을 관리하며 상호작용 성능을 극대화하면서도 전반적인 CPU 이용을 극대화하는 것을 목표로 한다.

컴플리틀리 페어 스케줄러
다른 이름Completely Fair Scheduler
원저자Ingo Molnar
개발자리눅스 커널 개발자들
운영 체제리눅스 커널
언어C
종류스케줄링 (컴퓨팅)
라이선스GPL-2.0
웹사이트kernel.org
단순화된 리눅스 커널 구조 내의 Completely Fair Scheduler(프로세스 스케줄러)의 위치.

로테이팅 스테어케이스 데드라인(Rotating Staircase Deadline)이라는 이름의 페어 스케줄링이 주를 이루는 Con Kolivas의 스케줄링은 Ingo Molnar가 컴플리틀리 페어 스케줄러(CFS)의 개발에 영향을 주었고 이는 자신의 발표에서 Kolivas의 업적을 언급하면서 초기의 O(1) 스케줄러를 대체한다.[1]

구 리눅스 2.6 커널에 쓰인 이전의 O(1) 스케줄러와 달리 CFS 스케줄러 구현은 런 큐에 기반을 두지 않는다. 대신에 레드-블랙 트리는 앞으로 있을 태스크 실행의 타임라인을 구현한다. 게다가 스케줄러는 나노초 입자 계산을 사용하며 이는 개개의 프로세스의 CPU 할당분이 할당된 원자 단위이다. 이는 이를테면 프로세스의 대화식 이용을 결정하기 위해 어떤 특정한 휴리스틱 이론이 필요하지 않다는 것을 의미한다.[2]

구 O(1) 스케줄러처럼 CFS는 슬리퍼 페어니스(sleeper fairness)라는 개념을 사용하는데, 이는 런큐의 것과 동일한 슬리핑/대기 태스크를 고려한다. 즉, 대부분의 시간을 사용자 입력이나 다른 이벤트를 대기하기 위해 소비하는 대화식 태스크들은 이들이 필요할 때 CPU의 필적할만한 할당분을 가져오게 된다는 것을 뜻한다.

각주 편집

  1. Molnar, Ingo (2007년 4월 13일). “[patch] Modular Scheduler Core and Completely Fair Scheduler [CFS]”. 《linux-kernel》 (메일링 리스트). 
  2. Andrews, Jeremy (2007년 4월 18일). “Linux: The Completely Fair Scheduler”. en:KernelTrap. 2007년 4월 19일에 원본 문서에서 보존된 문서. 

같이 보기 편집

외부 링크 편집