[CS]프로세스vs스레드

잡초·2024년 5월 10일
0

CS 스터디

목록 보기
4/4
post-thumbnail

✍️프로세스와 스레드의 정의

프로세스(Process):

  • 프로세스는 실행 중인 프로그램을 나타냅니다. 하나의 프로세스는 코드, 데이터, 메모리, I/O 작업 및 시스템 자원을 포함하는 독립적인 실행 환경을 가지고 있습니다.

스레드(Thread):

  • 스레드는 프로세스 내에서 실행되는 작업 단위를 나타냅니다. 하나의 프로세스는 여러 개의 스레드를 가질 수 있습니다.

✍️프로세스와 스레드의 주요 차이점

프로세스는 독립된 실행 환경을 가진 프로그램의 실행 단위이며, 각각의 프로세스는 운영체제로부터 독립된 메모리 공간을 할당받습니다.
스레드는 하나의 프로세스 내에서 실행되는 작업 단위로, 같은 주소 공간을 공유합니다.

프로세스는 서로 다른 프로세스 간의 통신에는 추가적인 매커니즘이 필요하고, 생성 및 소멸에도 운영체제의 개입이 필요하지만,
스레드는 프로세스 내에서 경량의 실행 단위로 생성 및 관리되며, 스레드 간의 통신은 공유 메모리를 통해 이루어집니다.

✍️멀티프로세싱, 멀티스레딩

멀티프로세싱과 멀티스레딩은 병렬 처리를 위한 두 가지 기술입니다.

멀티프로세싱(Multiprocessing):

  • 멀티프로세싱은 여러 개의 프로세스를 동시에 실행하여 병렬 처리를 달성하는 기술입니다.
  • 각 프로세스는 독립적인 메모리 공간을 가지며, 운영체제에 의해 별도의 프로세스로 관리됩니다.
  • 멀티프로세싱을 사용하면 여러 작업을 동시에 처리하여 시스템 자원을 효율적으로 활용할 수 있습니다.
  • 프로세스 간 통신(IPC, Inter-Process Communication)을 통해 데이터를 공유하거나 통신할 수 있습니다.

멀티스레딩(Multithreading):

  • 멀티스레딩은 하나의 프로세스 내에서 여러 개의 스레드를 동시에 실행하여 병렬 처리를 달성하는 기술입니다.
  • 스레드는 같은 주소 공간을 공유하므로, 데이터 공유와 통신이 용이합니다.
  • 멀티스레딩을 사용하면 프로세스 간 전환 비용이 적게 들며, 자원의 효율적인 사용이 가능합니다.
  • 스레드 간의 동기화와 데이터 무결성을 보장하기 위해 조심해야 합니다.
profile
개발자가 되고싶은 잡초

0개의 댓글