Post

CPU 코어 수와 스레드 수


컴퓨터 구조

컴퓨터 구조를 공부하면서 알게된 내용을 요약해서 작성해보자.

코드, 스레드

  • CPU는 기계 명령어에 따라 프로세스와 스레드를 실행한다.
  • CPU 코어 수와 스레드 수 사이에는 어떤 필연 관계도 없다.
  • CPU는 하드웨어, 스레드는 소프트웨어 개념, 더 정확하게는 실행 흐름이자 작업이다.
  • 단일 코어 시스템에서도 많은 스레드를 생성할 수 있다.
    • 메모리가 충분하고, 운영 체제에 제한이 없어야 한다.
  • CPU는 단순히 기계 명령어를 실행할 뿐 스레드 개념은 없다.

작업 분할과 블로킹 입출력

  • 작업 하나를 여러 개로 분할한 후 각각의 하위 작업을 별도의 스레드에 배치하면, 운영 체제에서 이를 스케줄링 하고 실행할 수 있으므로 동시에 여러 작업을 실행할 수 있다.
  • 작업은 프로그래밍 개념이 아니라 단순한 작업 분류를 의미한다.

다중 코어와 다중 스레드

  • 단일 코어 성능을 끌어올리기가 어려워서 다중 코어 생산을 시작했다.
  • 다중 코어 리소스를 최대한 활용할 때 프로그래머가 가장 선호하는 도구가 스레드다.
  • 일반적으로 스레드 수는 코어 수와 일정한 선형 관계를 유지해야 한다.
  • 스레드는 많다고 좋은 것이 아니다.