[운영체제] 6. 프로세스와 스레드

최재원's avatar
Mar 24, 2025
[운영체제] 6. 프로세스와 스레드

프로세스와 스레드의 개념

1. 프로세스 (Process)
  • 운영체제에서 실행 중인 프로그램을 의미
  • 독립적인 메모리 공간(Code, Data, Heap, Stack)을 가짐
  • 하나 이상의 스레드를 포함할 수 있음
  • 프로세스 간에는 기본적으로 메모리를 공유하지 않음
2. 스레드 (Thread)
  • 프로세스 내에서 실행되는 작은 작업 단위
  • 프로세스의 Code, Data, Heap을 공유하지만, 개별적인 Stack을 가짐
  • 같은 프로세스 내에서 스레드 간 데이터를 쉽게 공유 가능
  • 하나의 프로세스에는 여러 개의 스레드가 존재할 수 있음

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

구분
프로세스
스레드
메모리 공유
독립적
프로세스 내 공유
실행 단위
독립적 실행
병렬 실행
자원 할당
별도 할당 (Code, Data, Heap, Stack)
Stack만 개별 할당 (Code, Data, Heap 공유)
통신 방식
IPC (메시지 큐, 파이프, 공유 메모리 등) 필요
프로세스 내에서 직접 접근 가능
생성 비용
높음 (새로운 메모리 공간 할당 필요)
낮음 (기존 프로세스 자원 활용)
종료 시 영향
독립적 종료
하나의 스레드가 비정상 종료되면 전체 프로세스에 영향

 
notion image

notion image

notion image

notion image
notion image

notion image

 
 
Share article

jjack1