프로세스(Process) 와 스레드(Thread)

Asher Park·2023년 4월 14일
0
post-thumbnail

프로세스 (Process)

  • 운영체제에서 독립적으로 실행되는 프로그램의 인스턴스
  • 메모리에 올라와 실행되고 있는 프로그램인스턴스
  • 운영체제로 부터 시스템 자원(Code, Data, Stack, Heap)을 할당받는 작업의 단위
  • 종료 시 자원을 반환

멀티 프로세싱

  • 여러 개의 프로세스를 통해 동시에 두 가지 이상의 일을 수행할 수 있는 것
  • 하나의 응용프로그램을 여러 개의 프로세스로 구성하여, 각 프로세스가 하나의 작업을 처리하도록 하는 것
  • 이를 통해 하나 이상의 일을 병렬로 처리할 수 있음
  • 여러 개의 프로세스 중 하나에 문제가 발생하면, 그 프로세스만 죽는 것으로 다른 영향이 확산되지 않음

스레드 (Thread)

  • 프로세스 내 작업의 흐름을 의미
  • 프로세스의 실행 가능한 가장 작은 단위
  • 프로세스는 여러 스레드를 가질 수 있음
  • 한 프로세스 내의 여러 스레드는 시스템 자원(Code, Data, Heap)을 서로 공유, Stack은 각각 따로 할당받음
  • 한 스레드가 자원을 변경하면, 다른 스레드도 그 변경 결과를 볼 수 있음

멀티 스레딩

  • 프로세스 내 작업을 여러개의 스레드로 처리하는 기법
  • 서로 자원을 공유하므로 효율성이 높음
  • 프로세스 내의 Stack영역을 제외한 모든 메모리를 공유하므로 통신의 부담이 적음
  • 한 스레드에 문제가 생기면 다른스레드에도 영향을 끼쳐 프로세스에 영향을 줄 수 있는 단점
profile
배움에는 끝이없다

0개의 댓글