4-3장. 다중 스레드 모델

기타/[운영체제]

2019. 4. 5. 23:20

[운영체제 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