자율 학습/학습

프로세스와 스레드의 차이

2022. 11. 6. 21:05

이 질문은

운영체제가 시스템의 자원을 어떤 단위로 할당하고(-> 프로세스 단위),

프로세스와 스레드는 이 자원을 어떻게 사용하느냐(-> 각 프로세스 내의 스레드끼리 공유하며 실행)를 아는지 묻는 것이다.

 

 

프로세스

- 개념 : 운영체제로부터 자원을 할당받는 작업의 단위

- 실행될 때 운영체제로부터 프로세서, 필요한 주소 공간, 메모리 등 자원을 할당받는다.

 

스레드

- 개념 : 프로세스가 할당받은 자원을 이용하는 실행의 단위

- 한 프로세스 내에서 동작되는 여러 실행의 흐름

- 프로세스 내의 주소 공간이나 자원들을 같은 프로세스 내의 스레드끼리 공유하면서 실행된다.

 

 

 

Q. 여러 프로세스(멀티 프로세스)로 할 수 있는 작업들을 굳이 하나의 프로세스에서 스레드로 나눠가며 하는 이유는?

->

운영체제는 시스템 자원을 효율적으로 관리하기 위해 스레드를 사용한다.

멀티 프로세스로 실행되는 작업을 멀티 스레드로 실행하면, 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자원을 효과적으로 관리할 수 있다.