2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

[백엔드] 기술 면접 Top30 - #23 프로세스와 스레드의 차이

2023. 10. 3. 11:44ㆍ[백엔드] 기술면접
반응형

프로세스와 스레드

 

 

프로세스 ( Process )

  • 운영체제에서 실행 중인 프로그램의 인스턴스이다.
  • 독립된 메모리 공간을 가지며, 코드, 데이터, 스택, 힙 등의 자원을 분리하여 관리한다.
  • 개별적인 실행 환경을 제공하므로 여러 프로세스 간에 데이터 공유가 어렵고, 프로세스 간 통신(IPC)이 필요하다. 
  • 프로세스 간에는 각각 독립된 CPU 자원을 할당받아 실행된다.

스레드란

  • 스레드는 프로세스 내에서 실행되는 작은 실행 단위이다.
  • 하나의 프로세스는 여러 개의 스레드를 가질 수 있으며, 스레드 간에는 같은 프로세스의 자원을 공유할 수 있다.
  • 스레드는 같은 프로세스의 메모리 공간을 공유하므로 데이터 공유가 쉽다. 
  • 스레드는 프로세스 내에서 동시에 실행될 수 있으므로 멀티스레딩을 통해 병렬성을 구현할 수 있다.
  • 스레드는 프로세스의 자원을 공유하기 때문에 스레드 간의 동기화와 관련된 문제에 주의해야 한다.

프로세스와 스레드의 차이점

메모리 공간

  • 프로세스는 독립된 메모리 공간을 가지고 있으며, 스레드는 같은 프로세스 내에서 메모리를 공유한다.

통신 및 데이터 공유

  • 프로세스 간에 데이터 공유 및 통신은 IPC 기술을 사용해야 하지만,
    스레드는 같은 프로세스 내에서 간단하게 데이터를 공유할 수 있다.

생성 및 소멸 비용

  • 스레드의 생성 및 소멸 비용이 프로세스보다 낮다.

독립성

  • 프로세스는 독립적으로 실행되므로 하나의 프로세스가 충돌하더라도 다른 프로세스는 영향을 받지 않는다.
    반면 스레드는 같은 프로세스 내에서 실행되므로 하나의 스레드에서 오류가 발생하면
    다른 스레드에도 영향을 줄 수 있다.

요약


프로세스는 독립적인 실행 환경을 가지며 메모리를 분리하여 운영되는 프로그램 인스턴스이다.
스레드는 프로세스 내에서 동작하며 메모리를 공유하여 작은 실행 단위를 나타낸다.
프로세스 간 통신은 IPC를 필요로 하지만, 스레드는 같은 프로세스 내에서 간단한 데이터 공유가 가능하다.
프로세스는 독립성과 안정성을 제공하고, 스레드는 병렬성을 쉽게 구현할 수 있다.
반응형