프로세스, 스레드

aaron lee·2024년 10월 10일

코딩 인터뷰 완전 분석 책을 정리하였습니다.
최초 발행일 2020-01-04

프로세스와 스레드의 차이

프로세스는 실행되고 있는 프로그램의 인스턴스이다. 프로세스는 CPU 시간이나 메모리 등의 시스템 자원이 할당되는 독릭접인 개체이다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간 통신(inter-process communication)을 사용해야 한다. 프로세스 간 통신 방법으로는 파이프, 파일, 소켓 등을 이용한 방법이 있다.

스레드는 프로세스 안에 존재하며 프로세스의 자원(힙 공간 등)을 공유한다. 같은 프로세스 안에 있는 여러 스레드들은 같은 힙 공간을 공유한다. 반면에 프로세스는 다른 프로세스의 메모리에 직접 접근할 수 없다. 각각의 스레드는 별도의 레지스터와 스택을 갖고 있지만, 힙 메모리는 서로 읽고 쓸 수 있다.

한 스레드가 프로세스 자원을 변경하면, 다른 이웃 스레드(sibling thread)도 그 변경 결과를 즉시 볼 수 있다.

profile
소프트웨어 엔지니어

0개의 댓글