생태계를 유지하면서 리눅스 계속 발전하면서 새로운 기능이 등장합니다. 게으른 선점(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입니다. |
게으른 선점의 새로운 도입에 대해 어떻게 생각하시나요? 여러분의 의견과 생각을 댓글로 공유해주세요!