Back-end

[Back-End] 스레드, 프로세스, 코어의 수는 많을수록 좋을까요?

류건 2025. 1. 2. 16:47
반응형
매일메일을 통한
하루하루 CS 공부하기!

 

 

스레드, 프로세스, 코어의 수가 많을수록 시스템 성능이 향상된다고 생각할 수 있지만, 실제로는 그렇지 않을 확률이 크다.

 

스레드가 많으면?

  • OS가 스레드 간 Context Switching을 자주 수행하여 CPU 리소스가 스레드 관리에 많이 소모됨
  • 스레드가 많아지면 Synchronization이나 State 관리가 복잡해짐 → 버그 발생률 증가

실제 작업 수행 효율이 떨어질 수 있으며, 많은 스레드가 동시에 실행될 경우 Memory, Cache, Lock 등의 자원을 경쟁하게 되어 성능 저하나 Dead Lock 발생 가능.

 

프로세스가 많으면?

  • 각 프로세스는 독립적인 메모리 공간을 가짐
    • 따라서 많은 프로세스가 동시 실행 시 Memory Utilization이 급격하게 증가.
  • 프로세스 생성 & 관리에 많은 시스템 리소스 소모
  • 프로세스 간 통신 (IPC)이 필요한 경우 성능 저하 발생 가능
    • 오버헤드 : 프로세스 간 Context Switching > 스레드 간 Context Switching

 

OS는 동시에 실행할 수 있는 프로세스 수에 제한이 있으며, 이를 초과할 시 새로운 프로세스 생성이 불가능하거나 시스템이 불안정해질 수 있다.

 

코어가 많으면?

CPU는 코어가 높을 수록 병렬 처리 성능을 향상시킬 수 있지만, 소프트웨어가 멀티코어 환경에 최적화 되어있어야 한다.

 

코어 수가 많아질수록 CPU 비용과 전력 소비 증가, 발열 관리도 복잡해짐.

반응형