Search
Duplicate

하드웨어 스레드와 소프트웨어 스레드 차이

간단소개
팔만코딩경 컨트리뷰터 (Library DB (속성)에 관계됨)에 관계됨
ContributorNotionAccount
주제 / 분류
운영체제
태그
스레드
Scrap
8 more properties

하드웨어 스레드와 소프트웨어 스레드 차이

danawa에서 CPU 사양을 보면 4코어 8쓰레드, 6코어 12쓰레드 말이 나온다. 프로그래밍을 하다 보면 그 이상으로 쓰레드를 늘릴 수 있는데, 무슨 차이가 있을까?
Plain Text

하드웨어 스레드

하드웨어 스레드는 운영체제의 최소 작업 단위로, 물리적 CPU 또는 코어를 말한다.
CPU코어는 원칙적으로 한 번에 1개의 쓰레드만 처리할 수 있다.
단, intel의 HyperThreading, AMD의 SMT(Simutaneous MultiThreading) 기술로 인해 1개의 코어가 동시에 2개의 쓰레드를 지원할 수 있게 되었다.
6코어 12쓰레드는 6개의 코어에서 12개의 스레드가 병렬적으로 실행될 수 있다. 여러개의 프로그램이 동시에 실행되는 것처럼 보이는 것은 시분할(time sharing) 기법이다.

소프트웨어 스레드

소프트웨어 스레드는 응용 프로그램이 갖는 최소 작업 단위로, 이는 시스템 자원 한도 내에 계속해서 만들어 낼 수 있다.
소프트웨어 스레드가 많다고 해서 그것들이 병렬적으로 실행될 수 있는 건 아니다. 물리적 CPU(위의 예에서는 12스레드)를 초과할 수 없다.

결론

하나의 하드웨어 스레드는 수 많은 소프트웨어 스레드를 실행할 수 있다. 운영체제는 소프트웨어 스레드를 하드웨어 스레드에 지정(mapping)하여 CPU가 프로그램을 실행시킬 수 있도록 하는 것이다.

참고자료