리눅스 6.13에 도입될 레이지 프리엠프션 "PREEMPT_LAZY"

전문: https://www.phoronix.com/news/Linux-6.13-Lazy-Preemption

원저자: Michael Larabel | 작성일: 2024-11-06 11:23
사이트 내 게시일: 2024-11-06 11:47
다가오는 리눅스 6.13 버전에서는 리눅스 커널의 스케줄링 기능을 향상시키기 위한 "PREEMPT_LAZY" 패치가 도입될 예정입니다. 이 새로운 프리엠프션 모델은 기존의 공정 스케줄링을 수정하여 레이지 프리엠프션 접근 방식을 활용하며, 특히 resched_curr_lazy() 함수를 통해 구현됩니다. 이 모델이 활성화되면 TIF_NEED_RESCHED_LAZY 플래그가 설정되며, 이는 다음 틱에서 전체 NEED_RESCHED 플래그로 변환됩니다. 이로 인해 LAZY 플래그가 설정된 시점과 실제 재스케줄링 사이에 평균 TICK_NSEC/2의 지연이 발생합니다.

레이지 프리엠프션의 주요 목표는 SCHED_NORMAL 작업에 대한 프리엠프션 빈도를 줄여 잠금 보유자에 의해 발생하는 방해를 최소화하는 것입니다. 이 접근 방식은 자발적 프리엠프션과 일반적으로 연관된 성능 이점을 회복하기 위해 설계되었으며, 궁극적으로 자발적 옵션이 완전히 제거될 가능성도 있습니다. 레이지 프리엠프션 모델은 RR, FIFO, DEADLINE과 같은 실시간 클래스에 대해서는 여전히 전체 프리엠프션으로 작동합니다.

전반적으로 PREEMPT_LAZY의 도입은 리눅스 커널의 스케줄링 전략에서 중요한 발전을 나타내며, 다중 스레드 환경에서 성능과 응답성을 균형 있게 조화시키는 것을 목표로 하고 있습니다.

* 이 글은 phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은 이곳에서 확인하실 수 있습니다.
카테고리: Software
태그: Performance (842) Linux (801) kernel (140) real-time (7) scheduling (4) Preemption (3)

댓글

댓글을 쓰기 위해서는 로그인을 해 주세요.