운영체제발행일 2026. 8. 28.

프로세스와 스레드의 차이

주소 공간, 자원 공유, 문맥 전환 관점에서 프로세스와 스레드를 비교합니다.

#OS#Process#Thread

실행의 단위#

프로세스는 실행 중인 프로그램과 독립된 주소 공간을 의미합니다. 스레드는 한 프로세스 안에서 실행 흐름을 구성하며 코드와 힙 같은 자원을 공유합니다.

무엇을 공유하는가#

자원프로세스 사이같은 프로세스의 스레드 사이
주소 공간기본적으로 분리공유
파일 디스크립터IPC 또는 상속 필요공유 가능
스택각각 보유각각 보유

동시성 문제#

스레드가 메모리를 공유하면 통신 비용은 줄지만 race condition이 생길 수 있습니다. 공유 상태를 줄이고 임계 구역을 명확히 해야 합니다.

text 코드 예제
Thread A: read(count) -> count + 1 -> write(count)
Thread B: read(count) -> count + 1 -> write(count)

두 스레드가 같은 값을 읽으면 증가 연산 하나가 사라질 수 있습니다.

정리#

프로세스와 스레드의 선택은 격리 수준, 통신 비용, 실패 전파 범위를 함께 고려해야 합니다.