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 |