Linux 다중 프로세서 지원

Linux 다중 프로세서 지원

나는 다음을 읽고 있습니다종이. 논문에서 저자는 첫 번째 페이지의 마지막 단락에서 Unix/Linux가 "단일 노드에서 여러 프로세서를 지원하기 위해 10년 동안 노력해 왔다"고 언급했습니다. 이 문장이 무슨 뜻인지 이해가 안 돼요. Unix/Linux에서 다중 프로세서 지원이 왜 그렇게 어려운가요? 이것을 어렵게 만드는 것이 Unix/Linux의 아키텍처입니까?

답변1

인용문 몇 줄 위의 "연령" 단락에서 이 논문은 네 가지 참고 자료를 제공합니다.

Linux는 10년 동안 멀티 코어를 완전히 활용하려고 노력해 왔습니다[14, 20, 22, 34].

이러한 참고 자료는 다음과 같습니다.

  • Linux 네트워킹 스택의 확장(커널 문서의 일부), 다중 프로세서 시스템에서 네트워크 성능을 향상시키는 다양한 기술을 설명합니다.
  • Silas Boyd-Wickizer, Austin T. Clements, Yandong Mao, Aleksey Pesterev, M. Frans Kaashoek, Robert Morris 및 Nickolai Zeldovich. 2010. Linux 멀티 코어 확장성 분석. 존재하다운영 체제 설계 및 구현에 관한 제9차 USENIX 컨퍼런스 진행(밴쿠버, 브리티시컬럼비아, 캐나다)(OSDI'10). USENIX 협회, 미국, 1-16.
  • 변찬섭, 제레미 케프너, 윌리엄 아르칸드, 데이비드 베스터, 윌리엄 버거론, 매튜 허벨, 비제이 가데팔리, 마이클 홀, 마이클 존스, 앤 클라인 등 2019. 대화형 데이터 분석을 위해 Xeon Phi를 최적화합니다. 존재하다2019 IEEE 고성능 익스트림 컴퓨팅 컨퍼런스(HPEC). IEEE, 1-6.
  • Jean-Pierre Lozzi, Baptiste Lepers, Justin Funston, Fabian Gaude, Vivian Quaima 및 Alexandra Fedorova. 2016. Linux 스케줄러: 낭비된 코어의 10년. 존재하다제11차 컴퓨터 시스템에 관한 유럽 회의의 간행물(영국 런던)(유럽 시스템 '16). 컴퓨터 기계 협회, 뉴욕, 뉴욕, 미국, 기사 1, p.https://doi.org/10.1145/2901318.2901326

네 가지 참조 자료 모두에 익숙하지는 않지만 첫 번째 참조는 네트워크의 한계를 암시하고 마지막 참조는 실행 가능한 스레드가 대기 중임에도 사용 가능한 코어가 유휴 상태를 유지하게 만드는 스케줄러 버그의 예를 제공합니다.

따라서 이 의견의 의미에 대한 질문에 대한 대답은 다중 프로세서(또는 코어)가 있는 시스템에서 실행할 때 Linux 커널의 성능이 이상적이지 않은(약간 표현하자면) 인스턴스가 있다는 것 같습니다.

이것은 의견의 문제이지만 (UNIX 및 Linux에서) 다중 프로세서 지원이 어려운 것으로 입증된 주된 이유는 많은 사람들이 동시성을 추론하기 어렵고 두 시스템 모두 동시 시스템이 시작된 적이 없으며 동시 지원을 추가했기 때문이라고 생각합니다. 아키텍처아니요대대적인 재설계 - Linux에서는 처음으로 악명 높은 대형 커널 잠금을 사용했습니다. 나는 질문이 다음과 같다고 생각하지 않는다.건축학UNIX나 Linux 자체에서 도입된 동시 플랫폼을 적절하게 지원해야 하는 근본적인 문제는 적어도 대칭형 다중 처리 시스템에서는 해결되었습니다.

(당신은 찾을 수 있습니다이제 운영체제가 하드웨어를 재발견해야 할 때입니다.흥미로운. )

관련 정보