CS
[Process와 Thread - 2] 프로세스와 스레드의 개념과 차이: 멀티스레드의 작동 원리
옥돔이와 연근이
2025. 2. 20. 12:52
반응형
↘️ [Process와 Thread]
[Process와 Thread - 3] 멀티 프로세스와 멀티 스레드 비교
[Process와 Thread - 1] 프로세스의 구조와 동작 방식
📍 프로세스와 스레드 개념 정리
1. 프로세스란?
- 프로세스: 운영체제로부터 자원을 할당받는 작업의 단위.
- 실행 파일이 메모리에 적재되어 CPU를 할당받아 실행됨.
- 메모리의 Code, Data, Heap, Stack 영역으로 구성됨.
- 각 프로세스는 독립적인 메모리 공간을 가지며, 다른 프로세스와 메모리를 공유하지 않음.
2. 스레드란?
- 스레드: 프로세스가 할당받은 자원을 이용하는 실행의 단위.
- 하나의 프로세스 내에서 여러 스레드가 독립적으로 동작함.
- 스레드는 Code, Data, Heap 영역을 프로세스 내의 다른 스레드와 공유.
- Stack 영역과 PC Register는 각 스레드마다 독립적으로 존재함.
- Stack 영역: 지역 변수, 매개변수, 함수 호출 기록 등을 저장.
- PC Register: 실행 중인 명령어의 주소를 저장.
3. 멀티스레드란?
- 멀티스레드: 하나의 프로세스가 동시에 여러 개의 일을 수행하도록 하는 구조.
- 한 프로세스 내에서 여러 스레드가 병렬로 작업을 처리함.
- 예시: 유튜브 앱
- 동영상 재생 (스레드 1).
- 댓글 로드 (스레드 2).
- 네트워크 데이터 처리 (스레드 3).
- 장점:
- 자원을 공유하기 때문에 프로세스 간 통신보다 효율적.
- 작업 병렬 처리로 실행 속도 향상.
- 단점:
- 메모리 공유로 인한 동기화 문제 발생 가능.
- 동기화 구현이 복잡할 수 있음.
4. 스레드와 메모리 구조
- 공유 영역:
- Code 영역: 실행 코드 저장.
- Data 영역: 전역 변수, 정적 변수 저장.
- Heap 영역: 동적 메모리 할당 영역.
- 독립 영역:
- Stack 영역: 함수 호출 기록, 지역 변수, 매개변수 저장.
- PC Register: 스레드가 실행할 다음 명령어의 주소를 저장.
5. 스레드와 Context Switch
- 한 프로세스 내에서도 스레드 간에 Context Switch가 발생할 수 있음.
- Context Switch 과정:
- 현재 스레드의 PC Register 값을 저장.
- 새 스레드의 PC Register 값을 로드하여 작업 재개.
💡 요약
- 프로세스는 독립적인 작업 단위로, 운영체제로부터 자원을 할당받아 실행됨.
- 스레드는 프로세스가 할당받은 자원을 이용하는 실행 단위로, 같은 프로세스 내에서 자원을 공유하며 독립적으로 동작.
- 멀티스레드는 하나의 프로세스에서 여러 작업을 병렬로 처리하기 위한 기술.
- 스레드 메모리 구조:
- Code, Data, Heap은 공유.
- Stack, PC Register는 독립적으로 유지.
반응형