😀 Jerry/면접 질문

[1분 면접] 스레드, 프로세스, 코어의 수는 많을 수록 좋을까 ?

Jerry_K 2025. 2. 17. 15:08

코어가 많은 경우

  • 많은 코어는 CPU의 병렬 처리 성능을 향상
  • 이를 최대한 활용하기 위해서는 소프트웨어가 멀티코어 환경에 최적화되어야 함
  • 단일 스레드 작업이 주를 이룰 경우, 추가 코어의 이점을 잘 활용 못함
  • 또한 코어 수가 많아질수록 CPU의 비용과 전력 소비가 증가해 발열 관리 복잡

 

프로세스가 많은 경우

  • 각 프로세스는 독립된 메모리 공간을 가지는데, 프로세스가 동시에 실행되면 메모리 사용량 급격히 증가
  • 프로세스 생성 및 관리에도 많은 시스템 자원이 소모 
  • IPC (프로세스 간 통신)이 필요한 경우 성능 저하 발생
  • 많은 프로세스는 프로세스 간 Context Switching에 발생하는 오버헤드 수반

 

스레드가 많은 경우

  • 스레드가 많아지면, 스레드 간 Context Switching이 자주 일어나 CPU 자원이 스레드 관리에 소모
  • 많은 스레드가 동시에 실행될 경우 메모리나 캐시, 락 등의 자원이 경쟁되어 성능 저하 및 데드락 발생
  • 또한 스레드가 많아지면 동기화와 상태 관리가 복잡해짐 

내 답변

  • 코어가 많으면 많을 수록 처리 할 수 있는 작업이 많이지므로 긍정적인 효과 가져올 것 같다.
  • 프로세스는 너무 많아지면 여러개의  PCB를 커널에 저장해야하고, 계속 context switching이 발생하면 오버헤드가 발생해서 좋은 영향을 가져오지는 않을 것 같음
  • 한 프로세스 내에 여러개의 스레드가 있으면 동시성이 보장되어 좋지만, 이 또한 context switching이 자주 일어나면 오버헤드가 발생할 것 같음