스레드
프로세스를 구성하는 실행의 흐름 단위로, 하나의 프로세스는 여러 개의 스레드를 가질 수 있음.
여러 개의 스레드는 하나의 프로세스 자원을 공유하면서, 각자의 스레드 ID와 PC값, 스택을 가짐
멀티 프로세스 vs 멀티 스레드
- 멀티 프로세스
- 동일한 프로세스를 동시에 실행하면 코드 영역, 데이터 영역, 힙 영역 등을 비롯한 모든 자원이 복제 되어 메모리에 적재
- 각 프로세스는 독립적으로 운영되기 때문에 하나의 프로세스에 문제가 있다고 하더라도 다른 프로세스에는 큰 영향이 없을 수 있음
- 프로세스 간 통신(IPC)도 소켓이나 파이프를 통해서 충분히 가능함. 프로세스끼리 공유하는 데이터를 저장하는 공유 메모리(shared memory) 영역을 이용해서 통신하는 방법도 존재
- 멀티 스레드
- 코드, 데이터, 힙, 파일 등의 자원을 공유하면서 명령어를 실행
- 협력과 통신에서 유리하지만, 하나에 문제가 생기면 다른 스레드에서도 영향을 받음
'CS' 카테고리의 다른 글
보안, 인증, 인가를 위한 최소한의 개념잡기 (feat. 해시, 디지털 서명, PKI) (0) | 2023.10.05 |
---|---|
[혼공컴운] 명령어 병렬 처리 기법 (0) | 2023.04.10 |
[혼공컴운] 프로세스 상태와 계층 구조 (0) | 2023.04.07 |
[혼공컴운] 빠른 CPU를 위한 설계 기법 (0) | 2023.04.04 |
[혼공컴운] 명령어 사이클과 인터럽트 (0) | 2023.03.31 |