프로세스와 스레드

Gunju Kim·2025년 3월 19일
0

필수시청 영상

목록 보기
10/32

📌 프로세스(Process)란?

프로세스는 운영체제(OS)가 프로그램을 실행시키기 위해 메모리에 올린 작업 단위입니다. 쉽게 말해, 실행 중인 프로그램이라고 할 수 있습니다.

  • 프로그램을 실행하면 OS가 해당 프로그램에 필요한 자원을 할당하고 관리합니다.
  • 프로세스는 서로 독립된 메모리 공간을 가집니다.

특징:

  • 각 프로세스는 독립적인 메모리 영역을 갖습니다.
  • 하나의 프로세스가 문제가 생기더라도 다른 프로세스에 영향을 주지 않습니다.
  • 프로세스 간 통신(IPC: Inter-Process Communication)은 별도의 방법을 통해 이루어집니다.

예시:

  • 크롬 브라우저 실행 시 생성된 프로세스
  • 카카오톡 프로그램 실행 시 프로세스

📌 스레드(Thread)란?

스레드는 프로세스 내부에서 생성되는 실행의 흐름 단위로, 프로세스 내에서 작업을 처리하는 가장 작은 단위입니다.

  • 프로세스의 자원을 공유하여 사용합니다.
  • 하나의 프로세스는 여러 개의 스레드를 가질 수 있습니다(멀티 스레드).

특징:

  • 같은 프로세스 내의 스레드는 메모리(힙 영역 등)를 공유합니다.
  • 스레드는 개별적인 실행 스택(stack)을 갖고 있습니다.
  • 자원을 공유하기 때문에, 스레드 간 통신이 프로세스보다 쉽고 빠릅니다.
  • 하나의 스레드에 문제가 생기면, 같은 프로세스 내 다른 스레드에도 영향을 줄 수 있습니다.

예시:

  • 웹 브라우저 내에서 탭을 여러 개 열었을 때, 각 탭을 처리하는 스레드
  • 음악 재생 앱에서 음악 재생과 UI 처리를 동시에 진행할 때, 각 작업을 처리하는 스레드

📌 멀티 프로세스 vs 멀티 스레드

🔹 멀티 프로세스 (Multi-Process)

  • 여러 개의 프로세스를 이용하여 동시에 작업을 수행하는 방식
  • 안정성이 높고, 하나의 프로세스가 문제 발생 시 다른 프로세스에 영향을 주지 않음
  • 메모리 자원이 많이 필요하고 통신이 복잡해지는 단점이 있음

🔹 멀티 스레드 (Multi-Thread)

  • 하나의 프로세스 내에서 여러 개의 스레드를 생성하여 동시에 작업을 수행하는 방식
  • 메모리 공유로 자원 소모가 적고 빠른 작업 처리가 가능
  • 하지만 자원을 공유하기 때문에 동기화 문제(동시에 같은 자원을 접근)가 발생할 수 있음

  • 예를 들어, 웹 서버는 동시 처리가 중요하기 때문에 멀티 스레드를 사용합니다.
  • 크롬 브라우저는 안정성을 중요시하여 멀티 프로세스 방식을 선택합니다.

📌 예시로 이해하기

웹브라우저(크롬)의 경우:

  • 브라우저 자체는 하나의 프로세스
  • 각 탭은 별도의 프로세스로 작동 (안정성 확보)
  • 각 탭 내에서는 이미지 처리, 네트워크 통신 등을 여러 스레드로 병렬 처리 (효율성)

즉, 프로세스와 스레드를 혼합하여 사용합니다.

🚩 한 줄 요약

프로세스는 프로그램을 실행하는 독립된 작업 단위로 각각 독립된 메모리를 사용하고,
스레드는 프로세스 내의 실행 흐름으로 메모리를 공유하면서 효율성을 높이는 작업 단위입니다.

profile
처음이라서 그래 가본적 없던 길에

0개의 댓글