카테고리 없음

[CS/기술면접] 프로세스 (Process)와 스레드 (Thread)의 차이점

보리시스템 2023. 4. 14.
프로세스 (Process)와 스레드 (Thread)의 차이점은 무엇인가요?

 

1. 한마디 정리

프로세스는 운영체제로부터 자원을 할당받은 작업의 단위이고
스레드는 그 프로세스가 할당받은 자원을 이용하는 실행 단위입니다.

기술 발전에 따라 하나의 프로세스만 사용해 프로그램을 실행하기에 한계가 있어 스레드가 생겨났습니다.
이러한 스레드를 통해 스레드끼리 프로세스의 자원을 공유하면서 프로세스 실행 흐름의 일부가 되는 방식으로 동시 작업을 가능하게 합니다.

 

2. 내가 생각한 꼬리질문

1) 프로그램과 프로세스의 차이는?

프로그램 프로세스
어떤 작업을 하기 위해 실행할 수 있는 파일 실행되어 작업중인 컴퓨터 프로그램
파일이 저장 장치에 있지만 메모리에는 올라가 있지 않은 정적인 상태 메모리에 적재되고 CPU 자원을 할당받아 프로그램이 실행되고 있는 상태
쉽게 말해 그냥 코드 덩어리 그 코드 덩어리를 실행한 것

 

2) 스레드 생긴 이유?

과거에는 프로그램을 실행할 때 프로세스 하나만을 사용해서 이용했었다. 
하지만 기술이 발전에 따라 프로그램이 복잡해지고 다채로워짐으로써 프로세스 작업 하나만을 사용해서 프로그램을 실행하기에는 한계가 있었다.

그렇다고 동일한 프로그램을 여러 개의 프로세스로 만들게 되면, 그만큼 메모리를 차지하고 CPU에서 할당받는 자원이 중복되게 될 것이다. 스레드(Thread)는 이러한 프로세스 특성의 한계를 해결하기 위해 탄생 하였다.

 

3) 스레드의 작동 방식?

스레드는 프로세스가 할당 받은 자원을 이용하는 실행의 단위로서, 스레드끼리 프로세스의 자원을 공유하면서 프로세스 실행 흐름의 일부가 되기 때문에 동시 작업이 가능한 것

 

4) 멀티 프로세스와 멀티 스레드의 차이?

멀티 프로세스와 멀티 스레드는 동시에 여러 작업을 수행하는 방식이지만, 그 구현 방식에서 차이가 있습니다.

멀티 프로세스는 하나의 프로그램을 여러 개의 프로세스로 분할하여 각각 독립적으로 실행하는 방식입니다. 이 방식은 각 프로세스가 별도의 메모리 영역을 사용하기 때문에 한 프로세스에서 다른 프로세스의 데이터에 직접적으로 접근할 수 없습니다. 각 프로세스는 운영체제에서 제공하는 IPC(Inter-Process Communication) 기법을 사용하여 데이터를 주고받게 됩니다. 멀티 프로세스는 안정성이 높아지는 장점이 있지만, 프로세스 간 데이터 공유가 어렵고, 각각의 프로세스를 생성하고 관리하는 부담이 있어서 시스템 자원을 많이 사용하게 됩니다.

반면에 멀티 스레드는 하나의 프로세스 내에서 여러 개의 스레드를 생성하여 각각의 스레드가 병렬로 실행되는 방식입니다. 각 스레드는 프로세스 내부의 공유된 메모리 영역을 사용하기 때문에 데이터를 주고받는 것이 쉽고, 스레드를 생성하는 부담이 비교적 적어 시스템 자원을 적게 사용합니다. 하지만 스레드 간의 데이터 공유에 대한 동기화가 필요하고, 스레드 중 하나가 예외를 발생시키면 전체 프로세스가 영향을 받을 수 있는 단점이 있습니다.

즉, 멀티 프로세스는 안정성이 높고, 멀티 스레드는 시스템 자원을 효율적으로 사용할 수 있습니다. 따라서 어떤 방식을 선택할 것인지는 상황에 따라 다르게 결정됩니다.

 

3. 스터디원 꼬리질문

 

 

 


 

프로세스 (Process)

운영체제로부터 자원을 할당받은 작업의 단위

 

스레드 (Thread)

프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위

 

 

https://inpa.tistory.com/entry/%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%E2%9A%94%EF%B8%8F-%EC%93%B0%EB%A0%88%EB%93%9C-%EC%B0%A8%EC%9D%B4

 

👩‍💻 ‍완전히 정복하는 프로세스 vs 스레드 개념

한눈에 이해하는 프로세스 & 스레드 개념 전공 지식 없이 컴퓨터의 프로그램을 이용하는데는 문제 없어 왔지만 소프트웨어를 개발하는 사람으로서 컴퓨터 실행 내부 요소를 따져보게 될때, 아

inpa.tistory.com

 

https://www.youtube.com/watch?v=1grtWKqTn50