이론 2) 쓰레드(thread)
1. 쓰레드 개요
: 프로세스에서 실행 제어만 분리한 실행 단위 = 경량 프로세스
: 쓰레드를 포함하는 프로세스 = 중량 프로세스
- 쓰레드 구조
- 단일 쓰레드 & 다중 쓰레드 모델
단일 쓰레드 : 프로세스 하나에 쓰레드 하나만 지원합니다.
다중 쓰레드 : 프로세스 하나에 여러 개의 쓰레드를 지원합니다.
2. 쓰레드란?
: 문맥 교환이 용이하지 않은 자원들을 공유합니다.
- 쓰레드의 장점
: 자원과 메모리의 공유가 가능합니다.(IPC 프로그램이 용이)
: 다중 프로세서 구조 활용이 가능합니다.
3. 쓰레드 라이브러리
: 프로그래머들에게 쓰레드를 생성하고 관리하기 위한 API를 제공합니다.
ex) POSIX Pthread, Win32, Java
즉, 프로세스는 직접 실행하는 것이고,
쓰레드는 이에 관해 만들어져있는 함수를 가져다 쓰는 것입니다.
* 정보처리기사 문제 풀어보기 *
1. 현재실행중이거나 곧 실행가능한 CPU를 할당받을 수 있는 프로그램? 프로세스
2. PCB가 포함하고 있는 정보
-레지스터 보관 정보(값), 프로세스의 현 상태, 포인터
3. 특정 프로세스의 작업이 중단되어 CPU를 다른 프로세스에게 넘겨줄 때, 전 프로세스의 레지스터들은 저장되고, 실행될 프로세스의 레지스터를 시스템에 적재하는 작업? Context Switching 문맥 교환
4. 쓰레드
- 모든 쓰레드는 프로레스의 자원과 상태를 공유함
- 다중 스레드의 개념을 도입하면 자원중복할당을 방지
- 하나의 프로세스에 여러개의 스레드를 생성하여 병행성 증진