이 질문의 동기는 탐구에서 비롯됩니다.인텔 갈릴레오 2세대 마더보드단일 스레드 프로세서가 있습니다.
- 스레드의 존재에 의존하는 모든 사용자 공간 응용 프로그램에 대해 이것이 무엇을 의미하는지에 대한 개념적 설명을 찾고 있습니다.
- 이는 CPU 스레드 지원에 의존하는 대신 소프트웨어의 스레드가 호출하는 시스템 호출을 에뮬레이트하기 위해 커널을 패치해야 함을 의미합니까?
답변1
멀티태스킹 시스템은 시스템에 설치된 프로세서 또는 코어 수와 처리하는 "스레드" 수에 관계없이 여러 프로세스와 스레드를 처리합니다. 멀티태스킹은 시간 분할을 사용하여 작동합니다. 즉, 커널과 실행 중인 각 프로세스 또는 스레드가 실행되는 데 약간의 시간을 보낸 후 시스템이 다음 실행 가능한 스레드로 전환됩니다. 전환은 매우 자주 발생하므로 사실은 아니지만 모든 것이 병렬로 실행되는 것처럼 보입니다.
이 모든 작업은 API 등을 변경하지 않고도 발생합니다. 멀티 코어 시스템은 물리적으로 지원할 수 있는 것보다 더 많은 스레드를 실행할 수 있어야 하며, 단일 코어 사례는 단지 하나의 예일 뿐입니다.
CPU를 단일 스레드로 설명하는 것은 다음을 의미합니다.동시 멀티스레딩여러 스레드(또는 프로세스 또는 작업)를 실행하는 CPU의 기능이 아닌 SMT(인텔 세계의 하이퍼스레딩)입니다. CPU에 SMT 기능을 추가한다고 해서 스레드 실행에 도움이 되는 지침이 추가되는 것은 아니며 단순히 특정 상황에서 하드웨어를 더 잘 사용할 수 있게 해줄 뿐입니다.