[리눅스커널] 스케줄링: CFS 스케줄러 알고리즘과 vruntime

Guillermo Austin Kim|2019년 8월 26일
Posts

[리눅스커널] 스케줄링: CFS 스케줄러 알고리즘과 vruntime

Guillermo Austin Kim|2019년 8월 26일

CFS는 용어 그대로 프로세스를 공정하게 실행하도록 구현된 스케줄러입니다.CFS의 목표는 런큐에 있는 실행 대기 상태 프로세스에게 CPU 시간을 우선순위에 따라 공정하게 할당하는 것입니다. 우선순위가 높은 프로세스는 CPU 시간을 더 부여하고 우선순위가 낮은 프로세스는 CPU 시간을 적게 할당합니다. load weight 소개 CFS 적용 전 프로세스에게 우선순위의 절대값을 기준으로 타임 슬라이스를 할당 했었습니다. 하지만 프로세스에게 공정한 CPU 시간을 할당 할 수 없었습니다. 그래서 CFS에서는 프로세스에게 공정한 CPU 시간 할당을 위해 우선순위의 비율로 CPU 시간을 분배하게 됐습니다.  정수형 우선순위를 절대값이 아니라 우선순위 비율로 정한 것이다. 이것이 load weight입