개발 블로그

프로세스와 스레드 차이 - 간단하고 명확하게 정리 본문

컴퓨터공학

프로세스와 스레드 차이 - 간단하고 명확하게 정리

daehwan2 2023. 12. 30. 01:10

 

프로스세와 스레드에 대해서 정리해본다.

 

간단하게 정의부터 해보겠다.

 

프로세스: 운영체제가 할당한 자원을 사용하는 작업 단위이다. 

스레드:  프로세스 내에서 실행되는 작업 단위이다.

 

즉, 하나의 프로세스 안에는 하나 이상의 스레드가 있다.

 

어떠한 프로그램이 실행된다고 생각해보자. 

( 여기서 말하는 프로그램이란 컴퓨터에서 실행할 수 있는 것을 말한다. 브라우저, 내가 만든 node.js 소스 코드 등)

 

프로그램을 실행시키면, 프로세스가 생성이 되고 운영체제가 RAM 과 하드웨어를 적절히 배분해서 Virtual Memory를 프로세스에 할당해준다. 프로세스는 할당받은 메모리를 이용하여서 내부에 있는 스레드로 작업을 처리해 나간다.

즉 프로그램을 실행할때 사용할 메모리는 프로세스가 할당 받고 할당받은 메모리를 스레드가 사용하여서 프로그램을 실행하게 된다.

 

 

멀티 스레드( Multi Thread )와 멀티 프로세스( Multi Process )

프로세스 내에 스레드가 두 개 이상이면 멀티 스레드가 된다. 멀티 스레드여도 사용하게 되는 메모리를 할당받은 것은 한 개의 프로세스 이기 때문에 프로세스 내 스레드끼리는 같은 자원을 공유하게 된다. ( 물론 모든 자원을 공유하는 것은 아니다. )

 

그리고 프로세스가 두 개 이상이면 멀티 프로세스 라고 부른다. 각 프로세스들은 각자 따로 자원을 할당 받기 때문에 서로 자원 공유를 하지 못하며, 각각 내부적으로 스레드를 가지게 된다.

 

 

반응형

'컴퓨터공학' 카테고리의 다른 글

SMTP 란? 메일 시스템 동작 방식  (0) 2024.01.28
IP 주소란? IP v4 와 Netword ID 와 Host ID  (1) 2023.12.30
Comments