단일 스레드 CPU의 다중 스레드 애플리케이션?

단일 스레드 CPU의 다중 스레드 애플리케이션?

이 질문의 동기는인텔 갈릴레오 gen2 보드단일 스레드 프로세서가 있습니다.

  • 스레딩의 존재에 의존하는 모든 사용자 공간 응용 프로그램에 대해 이것이 무엇을 의미하는지에 대한 개념적 설명을 찾고 있습니다.
  • 이는 CPU 스레딩 지원에 의존하는 대신 스레딩 호출에 대한 시스템 호출이 소프트웨어에서 에뮬레이트되도록 커널을 패치해야 함을 의미합니까?

답변1

멀티 태스킹 시스템은 시스템에 설치된 프로세서 또는 코어 수와 처리하는 "스레드" 수에 관계없이 여러 프로세스와 스레드를 처리합니다. 멀티태스킹은 시간 분할을 사용하여 작동합니다. 커널과 실행 중인 모든 프로세스 또는 스레드는 각각 실행 시간을 보낸 후 시스템이 다음 실행 가능한 스레드로 전환됩니다. 스위치는 매우 자주 발생하므로 그렇지 않은 경우에도 모든 것이 병렬로 실행되는 것처럼 보입니다.

이 모든 것은 API 등의 변경 없이 발생합니다. 멀티 코어 시스템은 어쨌든 물리적으로 지원하는 것보다 더 많은 스레드를 실행할 수 있어야 하며, 단일 코어 사례는 그 예일 뿐입니다.

CPU를 단일 스레드로 설명하는 것은 다음을 의미합니다.동시 멀티스레딩(SMT 또는 Intel 세계의 하이퍼스레딩)이지 다중 스레드(또는 프로세스 또는 작업)를 실행하는 CPU의 기능이 아닙니다. CPU에 SMT 기능을 추가한다고 해서 스레드 실행에 도움이 되는 지침이 추가되는 것은 아니며 일부 상황에서 하드웨어를 더 잘 사용할 수 있을 뿐입니다.

관련 정보