※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.
Type Of Thread
- Kernel - Level Thread
- User - Level Thread
Kernel - Level Thread
- 커널 쓰레드 : 커널이 직접 생성하고 관리하는 쓰레드
- 커널이 쓰레드에 대한 정보 ( TCB ) 를 커널 공간에 생성, 소유
- 쓰레드 주소 공간 ( 쓰레드 코드, 데이터 ) : 사용자 공간에 존재
- main 쓰레드는 커널 쓰레드!
- 순수 커널 레벨 쓰레드 : 부팅 때부터 커널의 기능을 돕기 위해 만들어진 쓰레드
- 커널 코드를 실행하는 커널 쓰레드
- 쓰레드의 주소 공간은 모두 커널 공간에 형성
User - Level Thread
- 사용자 쓰레드 : 라이브러리에 의해 구현된 일반적인 쓰레드
- 응용프로그램이 라이브러리 함수를 호출하여 사용자 레벨 쓰레드 생성
- 쓰레드 라이브러리가 쓰레드 정보 ( U - TCB ) 를 사용자 공간에 생성하고 소유
- 커널은 사용자 레벨 쓰레드의 존재에 대해 알 수 없음 → 하나의 프로세스로만 인식함
Multithreading Models
- 멀티쓰레드의 구현
- 응용프로그램에서 작성한 쓰레드가 시스템에서 실행되도록 구현하는 방법
- Many - To - One “N:1” Model
- N개의 사용자 레벨 쓰레드를 1개의 커널 레벨 쓰레드로 매핑
- One - To - One “1:1” Model
- 1개의 사용자 레벨 쓰레드를 1개의 커널 레벨 쓰레드로 매핑
- Many - To - Many “N:M” Model
- N개의 사용자 레벨 쓰레드를 M개의 커널 레벨 쓰레드로 매핑
