스레드, 프로세스, 코어는 많을수록 좋을까요?

2024. 12. 14. 09:05·백엔드 면접

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

 

스레드가 많으면?

스레드가 지나치게 많아지면 운영체제가 스레드 간 컨텍스트 스위칭을 자주 수행해야 해 CPU 자원이 스레드 관리에 소모됩니다. 이로 인해 실제 작업 수행 효율이 떨어질 수 있으며, 많은 스레드가 동시에 실행될 경우 메모리나 캐시, 락 등의 자원을 경쟁하게 되어 성능 저하나 데드락이 발생할 가능성이 높아집니다. 또한, 스레드가 많아지면 동기화와 상태 관리가 복잡해져 버그 발생 가능성도 커집니다.

 

프로세스가 많으면?

각 프로세스는 독립된 메모리 공간을 가집니다. 그래서 많은 프로세스가 동시에 실행되면 메모리 사용량이 급격히 증가할 수 있습니다. 또한, 프로세스를 생성하고 관리하는 데는 상당한 시스템 자원이 소모되며, 프로세스 간 통신(IPC)이 필요할 경우 성능 저하가 발생할 수 있습니다. 프로세스 간 컨텍스트 스위칭은 스레드 간 컨텍스트 스위칭보다 더 많은 오버헤드를 수반하기 때문에 프로세스 수가 많아지면 시스템 성능이 저하될 수 있습니다. 운영체제는 동시에 실행할 수 있는 프로세스 수에 제한이 있으며, 이를 초과하면 새로운 프로세스 생성이 불가능하거나 시스템이 불안정해질 수 있습니다.

 

코어가 많으면?

많은 코어를 가진 CPU는 병렬 처리 성능을 향상시킬 수 있지만, 이를 최대한 활용하기 위해서는 소프트웨어가 멀티코어 환경에 최적화되어 있어야 합니다. 단일 스레드 작업이 주를 이루는 경우, 추가 코어의 이점을 제대로 활용하지 못할 수 있습니다. 또한, 코어 수가 많아질수록 CPU의 비용과 전력 소비가 증가할 수 있으며, 발열 관리도 더 복잡해집니다.

'백엔드 면접' 카테고리의 다른 글

HTTP 메서드에서 멱등성이란 무엇인가요?  (0) 2024.12.17
웹사이트에 접근했을 때 발생하는 일련의 과정에 대해 설명해 주세요.  (0) 2024.12.16
단위 테스트와 통합 테스트의 차이점은 무엇인가요?  (0) 2024.12.12
공유 락과 배타 락에 대해서 설명해 주세요.  (0) 2024.12.11
동기와 비동기의 차이점은 무엇인가요?  (0) 2024.12.11
'백엔드 면접' 카테고리의 다른 글
  • HTTP 메서드에서 멱등성이란 무엇인가요?
  • 웹사이트에 접근했을 때 발생하는 일련의 과정에 대해 설명해 주세요.
  • 단위 테스트와 통합 테스트의 차이점은 무엇인가요?
  • 공유 락과 배타 락에 대해서 설명해 주세요.
이런개발
이런개발
geun-00의 흔적 보관소
  • 이런개발
    내일이 기대되는 오늘
    이런개발
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 백엔드 면접
      • SQL N
        • SUM, MAX, MIN
        • SELECT
        • GROUP BY
        • JOIN
      • Spring
      • JPA
      • 트러블슈팅
      • Infra
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JPA
    자바
    백엔드 면접
    토스 페이먼츠
    티스토리챌린지
    raid
    스프링
    데브코스
    오블완
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
이런개발
스레드, 프로세스, 코어는 많을수록 좋을까요?
상단으로

티스토리툴바