🪩/백엔드 기술 면접 대비

[백엔드 기술 면접 대비] 프로세스, 쓰레드, 멀티 프로세스, 멀티 쓰레드

S0 2024. 3. 28. 00:18

 

 

💡 23. 프로세스와 쓰레드에 대해서 설명하고 그 차이에 대해서 설명해주세요.

 

프로세스 이전에 프로그램이라는 개념을 먼저 알아야 할 것 같았다.

 

프로그램이란?

하드 디스크에 저장된 코드 실행 파일

저장 장치에 저장되어 있는 정적인 상태

 

프로세스란?

실행 중인 프로그램이자 작업의 단위

더 정확히 말하면 

프로그램을 실행하면 파일에 있던 코드의 데이터가 메모리에 저장되어 프로세스로 동작한다.

실행되기 위해 메모리에 올라와있는 동적인 상태

 

 

스레드란?

프로그램, 특히 프로세스 내에서 실행되는 흐름의 단위

프로세스의 여러가지 상태 중에서도 CPU에 작업 요청을 하는 실행 단위가 스레드

 

-> 프로세스와 스레드의 차이

  프로세스 스레드
실행시키는 주체 운영체제 CPU
독립성 각각의 프로세스는 서로에게 영향을 미치지
않음
스레드의 작업은 다른 스레드에 영향을
미칠 수 있음

 

아래 링크에서 이해하기 쉽게 설명해주셨다.

https://simple-ing.tistory.com/67

 

쓰레드(Thread)의 기본개념

프로그램과 프로세스 우리가 프로그램을 실행하려고 하면, 실행을 위해 운영체제에서 메모리 공간을 할당받아오게 되며, 그 공간에 프로그램이 올려져 실행되게 된다. 즉 프로세스는 실행중인

simple-ing.tistory.com

 


💡 24. 멀티프로세스와 멀티쓰레드의 특징에 대해 설명해주세요.

(조금 더 공부한 후 내용 보충 예정)

 

멀티스레드

일반적으로는 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행 가능한데, 이것이 멀티 스레드

 

멀티스레드는 멀티프로세스에 비해 메모리를 덜 사용함