리눅스 스케줄러에 대한 중요한 패치 시리즈가 도입되어 단일 코어(UP) 및 다중 코어(SMP) 시스템의 코드를 표준화하는 데 초점을 맞추고 있습니다. 피터 자일스트라가 주도하는 이 이니셔티브는 현재 175개의 CONFIG_SMP 전처리기 블록과 관련된 복잡성을 줄이는 것을 목표로 하며, 이는 특히 개발자 시스템에서 빌드 및 부팅 실패의 원인이 되어왔습니다. UP 코드와 SMP 코드 간의 기존 차이는 스케줄러의 유지 관리 및 이해를 복잡하게 만들어 개발에서 숨겨진 비용을 초래합니다.
첫 번째 주요 변화는 UP 스케줄러를 SMP 스케줄러와 일치하도록 변환하는 것으로, 이는 코드베이스를 단순화하는 대규모 패치를 초래합니다. 이 전환은 UP 커널의 컨텍스트 전환에서 약간의 오버헤드를 초래할 수 있지만, 향후 개발을 간소화하기 위해 필요하다고 여겨집니다. 성능 벤치마크에 따르면 스케줄링 작업의 실행 시간이 약간 증가했으며, '이전' 시간은 2.55022초, '이후' 시간은 2.68700초로 기록되었습니다. 또한, 커널 크기는 텍스트에서 약 0.3%, 데이터에서 0.2% 증가하여 SMP 코드의 추가 복잡성을 반영하고 있습니다.
전반적으로 이 패치 시리즈는 리눅스 스케줄러를 현대화하는 데 중요한 단계로, 대부분의 현대 하드웨어가 다중 코어 처리를 지원하는 점을 고려할 때 더욱 의미가 있습니다. UP 성능에 집중하는 개발자들은 이 패치로 인해 증가한 오버헤드를 균형 있게 조정하기 위해 추가 최적화를 기여해야 할 것으로 예상됩니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.