운영체제

멀티스레딩 모델

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

사용자 수준 스레드와 커널 수준 스레드를 중심으로 멀티스레딩 모델의 판단 흐름을 읽습니다.

1

사용자 수준 스레드 vs 커널 수준 스레드

사용자 수준 스레드 (User-Level Thread) 사용자 수준 스레드는 커널의 도움 없이, 사용자 공간의 스레드 라이브러리가 생성·전환·스케줄링을 모두 처리합니다.

누가 관리하느냐
2

매핑 모델

사용자 수준 스레드(ULT)와 커널 수준 스레드(KLT)의 매핑 방식에 따라 세 가지 모델이 존재합니다.

사용자 수준 스레드
3

현대적 경량 스레드: 그린 스레드에서 가상 스레드까지

일대일 모델은 단순하고 강력하지만, 스레드 하나당 커널 스레드 하나씩 소비하므로 수십만 개의 동시 작업이 필요한 상황에서는 비효율적입니다.

레지스터 저장/복원 + 스택 포인터 변경