Archive
글 목록

프로세스와 스레드의 차이

·
CS운영체제

운영체제에서 프로세스와 스레드가 무엇이 다른지, 메모리 공유 관점에서 정리한다. CS 카테고리의 글.

이 글은 CS 대분류에 직접 속한 글이다 (소분류 없음). 폴더 blog/cs/ 에 바로 위치한다.

한 줄 정의

  • 프로세스: 실행 중인 프로그램. 독립된 메모리 공간을 가진다.
  • 스레드: 프로세스 안의 실행 흐름. 같은 프로세스의 메모리를 공유한다.

메모리 관점

프로세스끼리는 메모리가 격리되어 있어 안전하지만 통신(IPC) 비용이 크다. 스레드끼리는 힙·코드·데이터를 공유해 통신이 빠르지만, 동기화를 잘못하면 경쟁 조건(race condition)이 생긴다.

구분프로세스스레드
메모리독립공유(스택만 별도)
생성 비용작음
통신IPC 필요변수 직접 공유
안정성하나 죽어도 격리하나 죽으면 전체 영향

컨텍스트 스위칭 비용도 스레드가 더 작다 — 공유 자원이 많아 교체할 컨텍스트가 적기 때문이다.