멀티스레딩 모델

스레드를 누가 관리하느냐에 따라 구현이 완전히 달라집니다. 사용자 공간의 라이브러리가 스레드를 관리할 수도 있고, 커널이 직접 관리할 수도 있습니다.

스레드 매핑 방식, 문맥 전환 비용, 커널 개입 범위를 기준으로 멀티스레딩 모델을 비교합니다.

1

Many-to-One

U1 U2 U3
K1

전환은 빠르지만 K1이 막히면 모두 멈추고 여러 코어를 동시에 쓰지 못합니다.

빠른 전환 · 병렬성 없음
2

One-to-One

U1 U2 U3
K1 K2 K3

한 스레드가 막혀도 다른 스레드는 실행되며 여러 코어에서 실제 병렬 실행됩니다.

병렬성 · 커널 비용
3

Many-to-Many

U1 U2 U3
K1 K2

런타임이 많은 작업을 제한된 KLT에 배치해 동시성과 커널 비용을 절충합니다.

유연한 다중화