-
스레드를 위한 지원은 사용자 스레드는 사용자 수준에서, 커널 스레드는 커널 수준에서 제공된다.
사용자 스레드와 커널 스레드의 연관 관계로는 다대일, 일대일, 다대다 모델이 있다.
다대 일 모델
많은 사용자 수준 스레드를 하나의 커널 스레드로 사상한다.
스레드 관리는 스레드 라이브러리에 의해 행해진다.
한 스레드가 봉쇄 시스템 호출을 할 경우 전체 프로세스가 봉쇄된다.
한 번에 하나의 스레드만이 커널에 접근할 수 있기 때문에 다중 처리기에서 병렬로 작동할 수 없다.
일대일 모델
각 사용자 스레드를 각각 하나의 커널 스레드로 사상한다.
하나의 스레드가 봉쇄적 시스템 호출을 하더라도 다른 스레드가 실행 가능하다.
다중 처리기에서 다중 스레드가 병렬로 수행되는 것을 허용한다.
사용자 수준 스레드를 생성할 때 커널 스레드를 생성해야 하는 오버헤드로 프로그램의 성능이 저하된다.
다대다 모델
여러 개의 사용자 수준 스레드를 그보다 작거나 같은 수의 스레드로 다중화 한다.
두 수준 모델
다대다 모델과 비슷하며 하나의 사용자 스레드가 하나의 커널 스레드에 종속되는 것을 허용한다.
'운영체제 > 스레드' 카테고리의 다른 글
스레드와 관련된 문제들 (0) 2018.02.03 암묵적 스레딩 (0) 2018.02.03 스레드 라이브러리 (0) 2018.02.03 다중 코어 프로그래밍 (0) 2018.02.03 개요 (0) 2018.02.03
댓글