본문 바로가기
  • Trace
취업/CS

프로세스 VS 스레드 / 멀티태스킹 VS 멀티쓰레딩

by seleuchel 2022. 5. 18.

프로세스

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

* 실행 중인 프로그램 ( OS로부터 실행에 필요한 자원(메모리)를 할당받으면 프로세스가 됨 )

 

스레드 (LWP. 경량 프로세스)

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

* 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것 

쓰레드는 작업을 수행하는데 개별적인 메모리 공간을 필요로 함(호출스택)

 

멀티태스킹 VS 멀티쓰레딩

멀티태스킹 : 

여러 개의 프로세스동시에 실행 

 

멀티쓰레딩 : 

하나의 프로세스 내에서 여러 쓰레드가 동시에 작업을 수행하는 것 

동시에 처리되는 작업의 개수는 코어의 개수와 일치 

코어가 여러 쓰레드를 번갈아가면서 수행

 

프로세스의 성능이 단순히 쓰레드의 개수에 비례하는 것은 아니며,

하나의 쓰레드를 가진 프로세스 보다 두 개의 쓰레드를 가진 프로세스가 더 낮은 성능을 보일 수 있다. 

 

멀티쓰레딩의 장점 :

- CPU의 사용률을 향상시킨다.

- 자원을 보다 효율적으로 사용

- 사용자에 대한 응답성이 향상

- 작업이 분리되어 코드 간결

 

멀티쓰레딩의 단점 :

같은 프로세스에서 자원을 공유하면서 작업을 함 

- 동기화 (Synchronization)

- 교착 상태 (deadlock)

: 두 쓰레드가 자원을 점유한 상태에서 서로 상채편이 점유한 자원을 사용하려고 기다르느라 진행이 멈춘 상태

 

같은 문제들을 고려해서 신중히 프로그래밍 해야한다. 

 

'취업 > CS' 카테고리의 다른 글

callback  (0) 2022.06.07