CS./OPERATING SYSTEM
스레드 (Thread)
KSN
2023. 4. 7. 23:13
스레드는 프로세스를 구성하는 실행 흐름의 단위이고 하나의 프로세스는 하나 이상의 스레드를 가질 수 있다.
그중에서도 실행 흐름이 여러 개인 프로세스를 멀티 스레드 프로세스라고 하고 프로세스를 이루는 여러 명령어를 동시에 실행할 수 있다.
스레드의 구성 요소
-스레드 ID
-프로그램 카운터 & 레지스터 값
- 스택 등 실행에 필요한 최소한의 정보를 포함
*프로세스를 이루는 스레드들은 그 프로세스의 자원을 공유할 수 있다 !
멀티 프로세스 vs 멀티 스레드
멀티 프로세스란? 동일한 작업을 수행하는 단일 스레드 프로세스 여러 개를 실행하는 것을 의미
멀티 스레드란? 하나의 프로세스를 여러 스레드로 실행하는 것을 의미
*가장 큰 차이는 프로세스끼리는 기본적으로 자원을 공유하지 않지만 , 스레드끼리는 같은 프로세스 내의 자원을 공유한다.
1. 프로세스끼리는 자원을 공유하지 않는다.
- 하지만, IPC를 통해서라면 자원을 주고받을 수 있다.
- 파일을 통한 프로세스 간 통신, 공유 메모리를 통한 프로세스 간 통신
2. 스레드는 프로세스의 자원을 공유한다.