[운영체제 4-3장. 다중 스레드 모델(Multithreading Models)]
[사용자 스레드와 커널 스레드]
- 사용자 스레드(User threads)
: 사용자 수준에서 스레드를 위한 지원 제공.
: 커널 위에서 지원, 커널 지원 없이 관리된다.
# POSIX pthreads, Window 스레드, Java 스레드 등
- 커널 스레드(kernel threads)
: 커널 수준에서 스레드를 위한 지원 제공
: 운영체제에 의해 직접 지원되고 관리된다,
# 윈도우, 리눅스, 유닉스, 맥등
[다중 스레드 모델]
1. 다대일 모델(Many-to-One Model)
: 전통적. 여러 사용자 스레드를 하나의 커널 스레드로 사상(mapping)하는 방식.
: 병렬성X. 한번에 하나의 스레드만이 커널에 접근 가능
2. 일대일 모델(One-to-One Model)
: 이상적. 각 사용자 스레드마다 각 커널 스레드로 사상하는 방식.
: 높은 병렬성
<단점> 사용자 스레드 생성할때마나 커널스레드를 생성해야되는데,
커널 스레드를 생성하는 오버헤드가 응용 프로그램의 성능을 저하할수 있다.
(그래도 요즘은 H/W 발전으로 인해 대부분의 OS가 사용하는 방식. #Win,Linux등)
3. 다대다 모델(Many-to-Many Model)
: 여러 사용자 스레드가 여러 커널 스레드로 사상.
: 위 두개를 적절히 석은 방식.
3.1 두 수준 모델(Two-level mode)
: M:M과 유사하지만, 한 사용자가 한 커널 스레드에만 연관되는것을 허용.
'기타 > [운영체제]' 카테고리의 다른 글
4-5장. 암묵적 스레딩 (0) | 2019.04.06 |
---|---|
4-4장. 스레드 라이브러리 (0) | 2019.04.06 |
4-2장. 다중코어 프로그래밍 (0) | 2019.04.05 |
4-1장. 스레드 (0) | 2019.04.05 |
3-3장. 프로세스에 대한 연산 (0) | 2019.03.29 |