- 순서
- 프로세스란?
- 스레드란?
- 프로세스와 스레드의 차이점
- 요약
- 프로세스란?
- 프로세스란 운영체제가 제공하는 실행 단위로 독립적인가상 주소 공간과 자원을 갖음
- 프로세스마다 코드, 데이터, 스택, 힙이 별도로 관리됨.
- 스레드란?
- 프로세스 내부에서 실행 단위로 하나의 프로세스 안에서 여러 스레드가 메모리를 공유함
- 코드, 힙, 전역 변수를 공유하고 스택만 스레드별로 독립됨
- CPU가 스케줄링하여 병렬/동시 실행 가능함.
- 프로세스와 스레드의 차이점
| 구분 | 프로세스 | 스레드 |
| 메모리 | 독립적(각자 가상 주소 공간) | 공유(같은 프로세스 힙/글로벌) |
| 자원 | 독립적 자원(파일, 햄들 등) | 공유 자원 |
| 생성비용 | 높음 | 낮음 |
| 통신 | IPC 필요 | 메모리 공유로 직접 가능함 |
| C++/언리얼 활용 | CreateProcess/FPlatformProcess::CreateProc | std::thread, FRunnableThread, TaskGraph |
- 요약
- 프로세스: 독립실행 단위로 메모리가 완전히 격리되고 생성 비용이 큼
- 스레드: 프로세스 내부 실행 단위로 메모리를 공유하며 통신이 효율적이고, 동기화가 필요함
- 언리얼 특화:
- 대부분 게임 로직은 메인 스레드에서 실행됨
- 렌더링, 오디오, 물리 등은 별도 스레드로 처리
- UE TaskGraph + FRunnable을 통해 멀티스레딩을 효율적으로 관리할 수 있음
'CS' 카테고리의 다른 글
| [CS] 컨텍스트 스위칭 (1) | 2025.08.28 |
|---|---|
| [CS] 캐시의 지역성 (0) | 2025.08.28 |
| [CS]메모리 단편화 (1) | 2025.08.28 |
| [CS]프로세스의 메모리 (1) | 2025.08.27 |
| [CS]빌드 프로세스 (0) | 2025.08.27 |