-
[OS] 유저스레드와 커널스레드운영체제 2020. 11. 27. 20:41728x90
User Threads and Kernel Threads
User thread : pthread나 java 라이브러리와 같이 스레드 라이브러리로 생성하고 관리되는 스레드
Kernel thread : 커널에서 제공하는 스레드
User thread 와 kernel thread 는 서로 연결되어있음
관계
-
Many-to-One Model
User thread 가 많이 생성 되더라도 실제로 동작하는 것은 kernel thread 이므로 단일 스레드와 다를 것이 없음 -
One-to-One Model
현대 OS에서 대부분 채택하는 방식으로, 컴퓨팅 리소스가 커지면서 가능하게 됨
장점 : 매우 이상적이고, 빠름
단점 : 너무 많은 스레드를 운용하면 스레드 포화가 올 수 있음 -
Many-to-Many Model
운영체제가 충분한 수의 커널 스레드를 생성하고, 사용자 스레드와 동적으로 매칭시켜주는 방식
일대일과 다대일의 장점을 합친 방식
LWP(LightWeight Process) 모듈을 통해 유저 스레드와 커널 스레드를 연결 -
Two-level Model
M:M, 1:1 을 모두 지원하는 방식으로 리눅스가 Two-level model을 지원
'운영체제' 카테고리의 다른 글
[OS] 멀티스레드와 fork(), exec() 의 관계 (0) 2020.11.27 [OS] Implicit Threading (0) 2020.11.27 [OS] 멀티스레드 개념 (동시성 vs 병렬성) (1) 2020.11.27 [OS] 커널 메모리 할당 방식(Buddy, Slab) (0) 2020.11.27 [OS] 페이지 Thrashing, Working-Set, PFF (0) 2020.11.27 -