CS

[CS] 프로세스와 스레드

programmer-faust 2025. 8. 28. 02:08
  • 순서
    1. 프로세스란?
    2. 스레드란?
    3. 프로세스와 스레드의 차이점
    4. 요약
  • 프로세스란?
    1. 프로세스란 운영체제가 제공하는 실행 단위로 독립적인가상 주소 공간과 자원을 갖음
    2. 프로세스마다 코드, 데이터, 스택, 힙이 별도로 관리됨.
  • 스레드란?
    1. 프로세스 내부에서 실행 단위로 하나의 프로세스 안에서 여러 스레드가 메모리를 공유함
    2. 코드, 힙, 전역 변수를 공유하고 스택만 스레드별로 독립됨
    3. CPU가 스케줄링하여 병렬/동시 실행 가능함.
  • 프로세스와 스레드의 차이점
구분 프로세스 스레드
메모리 독립적(각자 가상 주소 공간) 공유(같은 프로세스 힙/글로벌)
자원 독립적 자원(파일, 햄들 등) 공유 자원
생성비용 높음 낮음
통신 IPC 필요 메모리 공유로 직접 가능함
C++/언리얼 활용 CreateProcess/FPlatformProcess::CreateProc std::thread, FRunnableThread, TaskGraph
  • 요약
    1. 프로세스: 독립실행 단위로 메모리가 완전히 격리되고 생성 비용이 큼
    2. 스레드: 프로세스 내부 실행 단위로 메모리를 공유하며 통신이 효율적이고, 동기화가 필요함
    3. 언리얼 특화:
      1. 대부분 게임 로직은 메인 스레드에서 실행됨
      2. 렌더링, 오디오, 물리 등은 별도 스레드로 처리
      3. 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