1. 스레드(Thread)란?
프로세스 내부에 존재하는 최소 작업단위. 한 개 이상의 스레드가 프로세스의 자원을 제어할 수 있음.
※ 전통적 프로세스 = 단일 스레드 프로세스
2. 스레드의 구성 요소
1) Thread ID
2) Register set(Program Counter, Stack Pointer)
3) Stack(지역 변수 등)
3. 스레드의 장점
1) 사용자 응답성 : 일부 스레드의 처리가 지연되어도 다른 스레드는 작업을 계속 처리 가능
2) 자원 공유 : 커널의 개입을 피할 수 있기 때문에 효율성이 증가
3) 경제성 : Context Switch에 비해 효율적
4) 병렬 처리를 통한 성능 향상
4. 스레드의 구현
1) 사용자 수준 스레드
스레드 라이브러리로 구현되며, 커널은 스레드의 존재를 모름
하나의 스레드가 block 상태가 되면 모든 스레드는 대기함
※ 스레드 라이브러리 : 스레드의 생성, 스케쥴링 기능 제공
2) 커널 수준 스레드
스레드의 생성과 스케쥴링을 커널이 직접 관리
Context Switching 등 부하(Overhead)가 큼
하나의 스레드가 block 상태가 되어도 다른 스레드가 작업 수행 가능
5. 멀티 스레딩 모델
1) 1:n 모델 : 사용자 수준 스레드
2) 1:1 모델 : 커널 수준 스레드
3) n:m 모델 : 혼합형 스레드. 효율적이면서 유연함. 사용자 수준 스레드의 수>=커널 수준 스레드의 수
[참고] n:m 모델
아래 사진과 같이 사용자 영역의 스레드 하나가 block 상태가 되어도 다른 스레드가 작업 수행 가능
이미지 출처 : 한빛 미디어 운영체제
참고 자료 : 김덕수 교수님 - www.youtube.com/playlist?list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN
'OS 개념 정리' 카테고리의 다른 글
[OS] 동기화(2) - OS Solutions (0) | 2021.05.28 |
---|---|
[OS] 동기화(1) - 동기화 기초, SW/HW Solutions (0) | 2021.05.24 |
[OS] Scheduling (0) | 2021.05.19 |
[OS] 프로세스 (0) | 2021.05.12 |
[OS] 운영체제와 하드웨어 기본 (0) | 2021.05.07 |
댓글