프로세스와 스레드에 대해서 알아보고, 둘의 차이를 기술하려 한다.
프로세스(Process)
프로세스를 알아보기 전에, 프로그램과 프로세스의 차이가 무엇인지 알아보자.
✅ 프로그램(Program) : 컴퓨터에서 실행할 수 있는 파일
✅ 프로세스(Process): 실행 중인 프로그램
쉽게 말하면 프로그램은 저장 장치에 있는 정적인 파일로, 아직 메모리에 적재되지 않은 상태를 의미한다.
반면, 프로세스는 그 프로그램이 실행되어 메모리에 올라가 실제로 동작 중인 상태를 의미한다.
프로세스는 메모리에 Stack / Heap / Data / Text 영역으로 적재되어 실행된다.

- Stack: 함수 호출, 지역 변수 등 임시 데이터가 저장되는 공간.
함수 호출에 따라 자동으로 메모리가 할당/해제된다. - Heap: 동적으로 메모리를 할당받는 공간
- Data: 전역 변수, 정적 변수 등 데이터가 저장되는 곳
- Text: 프로그램의 코드(Code)가 저장된다.
스레드(Thread)
스레드란 하나의 프로세스 내에서 동시에 여러 작업을 처리할 수 있게 해주는 실행 단위이다.

CPU의 개수에 따라, 여러 스레드(2개 이상의 스레드)는
[싱글 코어] 번갈아가면서 실행되거나
[멀티 코어] 다른 CPU에서 동시에 실행될 수 있다.(병렬성)
스레드는 프로세스 내에서 Stack 영역만 독립적으로 할당받고, Heap / Data / Text 영역은 공유한다.
때문에, 스레드 간의 Switching은 프로세스 간의 Switching보다 속도가 훨씬 빠르다.

프로세스와 스레드의 차이
프로세스와 스레드를 보다보면 방식의 차이가 아니라, 구조적 차이가 눈에 들어올 것이다.
프로세스는 운영체제가 관리하는 작업의 최소 단위이며,
스레드는 프로세스의 자원을 공유하며 동작하는 프로세스 내의 실행 단위이다!
그렇기 때문에, 프로세스는 분리된 메모리에서 데이터를 공유하기 위해 IPC와 같은 별도의 통신 방법이 필요하다.
:)
출처
'Computer Science > 운영체제' 카테고리의 다른 글
| [OS] 메모리 관리- 페이징(Paging)과 세그먼테이션(Segmentation) (2) | 2025.08.21 |
|---|---|
| [OS] 시스템 콜(System Call) (3) | 2025.08.14 |
| [OS] 프로세스 동기화(Process Synchronization) (5) | 2025.08.03 |
| [OS] IPC(Inter-Process Communication) (4) | 2025.07.31 |
| [OS] GC(Garbage Collection, 가비지 컬렉션) (1) | 2025.07.21 |