리눅스

CBS(Constant Bandwidth Server) 와 SCHED_DEADLINE

Zino. 2025. 9. 5. 21:31

CBS는 하드 Real time 스케줄링 알고리즘 중 하나로, EDF(Earliest Deadline First) 기반 알고리즘이다.

task에 period와 runtime을 지정하면 task가 그 예산을 소진했을 때 즉시 다른 task에게 CPU를 양보한다.

 

다음과 같은 핵심 아이디어로 만들어졌다.

  • 각 task마다 "CPU bandwidth (runtime / period)를 설정
  • 어떤 task가 과도하게 실행되더라도, 다른 task에 할당된 CPU를 침해하지 않음
  • CPU 격리와 QoS 보장 가능

이러한 방식을 리눅스 커널에서 SCHED_DEADLINE이라는 실시간 스케줄링 클래스로 제공한다.

EDF + CBS 를 기반으로 동작하게 된다.

여기서 EDF만 사용하게 된다면 특정 task가 CPU를 독점할 수 있다는 문제를 방지하기 위해 CBS 개념을 도입한 것이다.

 

각 테스크마다 다음의 파라미터를 지정해야한다.

  • runtime : 한 주기동안 보장할 CPU 실행시간
  • deadline : task가 끝나야하는 시각
  • period : task가 반복되는 주기

 

정리하자면 CBS는 "각 task별 CPU 사용량을 관리하는 메커니즘" 이고 SCHED_DEADLINE은 CBS 원리를 리눅스 커널에 녹여낸 리눅스 스케줄러이다.

'리눅스' 카테고리의 다른 글

IRQ란 (Interrupt Request)  (1) 2025.08.17
쉘 스크립트 반복문 (for, while)  (0) 2024.06.09
쉘 스크립트 (shell script) 작성 - 조건문  (0) 2024.05.31
맥에 우분투 리눅스 설치  (0) 2024.05.17
[리눅스] ed, sed 명령어  (1) 2024.04.20