Linux 6.13에 지연 선점 “PREEMPT_LAZY” 도입

생태계를 유지하면서 리눅스 계속 발전하면서 새로운 기능이 등장합니다. 게으른 선점(lazy preemption)이라고도 함 PREEMPT_LAZY. 이 혁신적인 접근 방식은 운영 체제에서 작업 관리를 최적화하는 것을 목표로 합니다. 이 기사를 통해 우리는 이 새로운 옵션의 문제점과 장점은 물론 커널의 일반적인 성능에 미치는 잠재적인 영향을 살펴보겠습니다.

게으른 선점이란 무엇입니까?

정의 및 작동

선점은 운영 체제의 핵심 메커니즘으로, 현재 작업을 중단하여 다른 작업에 우선 순위를 부여할 수 있습니다. 구현으로 PREEMPT_LAZY, 반응성과 성능 사이의 균형을 추구합니다. 구체적으로, 이 차등 선점 모델은 작업을 체계적으로 중단하지 않도록 선택합니다. SCHED_NORMAL, 잠금 충돌을 줄입니다.

작동 원리

이 접근법은 지표의 사용을 기반으로 합니다. TIF_NEED_RESCHED_LAZY, 특정 작업 클래스에 대해 선점을 연기할 수 있습니다. 지연 선점이 활성화되면 다음과 같은 일이 발생합니다.

  • 작업 SCHED_NORMAL 선점되는 경우가 적습니다.
  • 다음과 같은 실시간 작업 ₩₩, FIFO 그리고 사선, 최대 우선순위를 유지합니다.
  • 예상되는 중단을 최소화하여 실행 대기 시간을 줄입니다.

성능에 미치는 영향

성능에 미치는 영향

다른 선점 모드와의 비교

게으른 선점은 주로 고전적인 선점 모델을 개선하기 위해 설계되었습니다. 중단 시점을 수정하여, 자원 봉사자 다음을 제공함으로써:

  • 일반 작업 처리 최적화.
  • 중요한 작업에 대한 유연성이 향상되었습니다.
  • 집약적인 애플리케이션에서 눈에 띄는 성능 향상이 있습니다.

타겟 아키텍처

현재, PREEMPT_LAZY 주로 아키텍처에 도입되었습니다. x86, x86_64 그리고 RISC-V. 이 오리엔테이션은 경쟁 작업으로 인해 병목 현상이 자주 발생하는 시스템 최적화에 대한 의지를 보여줍니다.

핵심 요소 요약표

🔑요소 💻설명
게으른 선점 방해를 줄이기 위한 새로운 작업 관리 모델.
SCHED_NORMAL 클래스 더 나은 잠금 관리를 위해 선점되는 빈도가 줄어듭니다.
실시간 작업 최대한의 응답성을 보장하는 것이 최우선입니다.
지원되는 아키텍처 현재 x86, x86_64 및 RISC-V입니다.

게으른 선점의 새로운 도입에 대해 어떻게 생각하시나요? 여러분의 의견과 생각을 댓글로 공유해주세요!