프로세스와 스레드

2023. 11. 7. 15:05·[게임 개발] CS 공부

프로세스

운영체제로 부터 할당 받은 작업의 단위

 

즉, 프로세스는 실행 중인 프로그램을 말합니다.

운영체제는 프로세스에게 메모리 공간과 같은 자원들을 할당하고,

각 프로세스는 독립된 메모리 공간을 가지고 있어서 다른 프로세스와 자원을 공유하지 않습니다.

 


스레드

프로세스 내에서 할당된 자원을 사용하여 실행되는 실행의 단위

 

즉, 프로세스가 할당받은 자원을 이용해서 실제로 명령을 수행하는 것이 스레드입니다.

 

스레드는 각각 독립적인 스택을 가집니다.

다만 코드나 데이터, 힙 영역의 메모리 공간은 같은 프로세스 내의 스레드 끼리 공유합니다.

 

 


멀티 프로세스와 멀티 스레드

멀티 프로세스는 각각의 프로세스가 독립된 메모리 공간을 가지고 있다는 특성 때문에
하나의 프로세스가 실패해도 다른 프로세스에 영향을 주지 않는다는 장점이 있지만,
Context Switching* 이 많이 발생하면 자원의 소비가 매우 커진다는 단점이 있습니다.

 

멀티 스레드는 동일한 프로세스 내에서 실행되어 코드, 데이터, 힙 영역의 메모리를 공유한다는
특성이 있습니다.

이 때문에 동시에 같은 자원에 접근하려 할 때 데드락* 같은 동기화 문제가 발생할 수 있고,
한 스레드에서 발생한 잘못된 메모리 접근 같은 문제가 전체 프로세스를 중단시킬 수 있다는 단점이 있습니다.

하지만 멀티 프로세스에 비해 멀티 스레드는 스택만 존재하기에 Context Switching의 자원 소모가 적고,

동일한 프로세스에서 여러 메모리를 공유하기에 멀티 프로세스보다 효율적인 정보 교환이 가능합니다.

 

Context Switching:

CPU는 한번에 하나의 프로세스만 실행이 가능. 다른 프로세스를 실행하려면?

CPU에서 현재 실행중인 프로세스를 저장한 뒤 대기시키고, 다음으로 실행할 프로세스의 상태를 복구하는 작업

 

데드락:

둘 이상의 프로세스나 스레드가 서로가 보유하고 있는 자원을 요청해 무한히 대기하는 현상.

각 프로세스나 스레드는 다음 단계로 진행하기 위해 필요한 자원을 확보하지 못하고,
그 자원을 가지고 있는 다른 프로세스나 스레드 역시 교착상태에 빠지는 것

 

 

 

저작자표시 (새창열림)

'[게임 개발] CS 공부' 카테고리의 다른 글

메모리 구조  (0) 2023.11.10
OOP의 5대 원칙  (0) 2023.11.08
'[게임 개발] CS 공부' 카테고리의 다른 글
  • 메모리 구조
  • OOP의 5대 원칙
람팜팜~
람팜팜~
:)
  • 람팜팜~
    RumPumPum
    람팜팜~
  • 전체
    오늘
    어제
    • 전체 (123)
      • 🎵 일상 (2)
      • JAVA (5)
        • 김영한의 자바 입문 (3)
      • JavaScript (12)
      • ---------------------------.. (0)
      • [게임 개발] 포트폴리오 (2)
        • RPG (1)
        • 슈터-플랫포머 (1)
      • [게임 개발] 개발 일지 (28)
        • RPG (25)
        • TopDownProject (3)
      • [게임 개발] 언리얼엔진 공부 (9)
        • 이득우의 언리얼 프로그래밍 Part.1 (6)
        • 이득우의 언리얼 프로그래밍 Part.2 (1)
        • 개인 메모 (2)
      • [게임 개발] 알고리즘 공부 (60)
        • 프로그래머스 (8)
        • 백준 (52)
        • 개인 메모 (0)
      • [게임 개발] CPP 공부 (2)
        • 이것이 C++ 이다 (1)
        • Effective C++ (0)
        • Effective Modern C++ (0)
        • 홍정모 그래픽스 새싹코스 (1)
      • [게임 개발] CS 공부 (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      데드락
      스레드
      참조자
      슬라이딩 윈도우
      그리디
      해시
      dfs
      우선순위 큐
      누적합
      프로세스
      dp
      메모리구조
      문자열
      context switching
      역참조
      브루트포스
      투포인터
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    람팜팜~
    프로세스와 스레드
    상단으로

    티스토리툴바