CS 23 프로세스 스레드

이상인·2023년 9월 16일
0

프로세스와 쓰레드에 대해서 설명하고 그 차이에 대해서 설명해주세요.

프로세스와 스레드는 컴퓨터 프로그램의 실행과 관련된 두 가지 주요 개념입니다.

프로세스 (Process)

정의

  • 프로세스는 실행 중인 프로그램의 인스턴스입니다.
  • 각 프로세스는 독립적인 메모리 공간, 자원 및 실행 흐름을 가지고 있습니다.

특징

  • 프로세스는 운영 체제에 의해 관리되며, 각 프로세스는 자체 메모리 공간을 할당받습니다.
  • 프로세스 간 통신(IPC, Inter-Process Communication)을 통해 데이터를 공유할 수 있지만, 일반적으로 비용이 높고 복잡합니다.
  • 프로세스 간 독립성이 높기 때문에 하나의 프로세스가 충돌하더라도 다른 프로세스에 영향을 미치지 않습니다.
  • 프로세스 간 전환(Context Switching)은 비용이 크며, 스레드 간 전환보다 오버헤드가 높습니다.

스레드 (Thread)

정의

  • 스레드는 프로세스 내에서 실행되는 하나의 실행 흐름입니다.
  • 여러 스레드는 같은 프로세스 메모리를 공유하며, 따라서 프로세스 내의 자원을 공유합니다.

특징

  • 스레드는 프로세스 내에서 동작하며, 프로세스 내 메모리 및 자원에 대한 직접적인 접근을 공유합니다.
  • 스레드 간 통신은 일반적으로 프로세스 간 통신보다 효율적이며 간단합니다.
  • 스레드 간 동기화(Synchronization)를 통해 공유 자원에 안전하게 접근할 수 있어야 합니다.
  • 스레드는 프로세스 내의 다른 스레드에 영향을 미칠 수 있으므로 주의가 필요합니다.
  • 스레드 간 전환(Context Switching)은 프로세스 간 전환보다 경제적이지만 오버헤드가 있습니다.

차이점

독립성

  • 프로세스는 완전히 독립적이며, 하나의 프로세스의 오류가 다른 프로세스에 영향을 미치지 않습니다.
  • 스레드는 같은 프로세스 내에서 실행되므로 하나의 스레드 오류가 다른 스레드에 영향을 미칠 수 있습니다.

자원 공유

  • 프로세스는 각각 자체 메모리 공간을 가지고 있어 자원 공유가 복잡하고 비용이 높습니다.
  • 스레드는 같은 프로세스 내에서 메모리 및 자원을 공유하므로 자원 공유가 간단하고 효율적입니다.

통신 방법

  • 프로세스 간 통신은 IPC를 사용하여 이루어집니다.
  • 스레드 간 통신은 공유 메모리 및 동기화 메커니즘을 사용하여 이루어집니다.

생성 및 종료 오버헤드

  • 프로세스 생성 및 종료는 오버헤드가 큽니다.
    스레드 생성 및 종료는 상대적으로 적은 오버헤드를 가집니다.
  • 프로세스와 스레드는 각각의 장단점을 가지고 있으며, 상황에 따라 적절한 선택이 필요합니다.
  • 멀티코어 프로세서를 활용하기 위해 스레드를 사용하는 경우가 많지만, 스레드 관리와 동기화에 따른 복잡성에 주의해야 합니다.

0개의 댓글