serversim
학습시뮬레이터템플릿가격
…
…
메뉴 열기
학습↗시뮬레이터↗템플릿↗가격↗
내 Documents문서
전체 목차/4장/4.526 / 40

4.5 · 회로와 CPU

CPU 코어 수와 스레드 수는 어떤 관계일까?

4코어 컴퓨터에서 스레드 100개가 동시에 계산할 수 있을까요?

실제로 같은 순간에 계산하는 스레드 수는 코어 수에 제한되지만, 입출력 대기 중인 스레드와 교대할 수 있습니다.

먼저 생활 비유

요리사와 주문서

요리사 4명은 동시에 팬 4개를 다룰 수 있지만 오븐을 기다리는 주문서는 내려두고 다른 주문을 처리할 수 있습니다.

컴퓨터 예제로 바꾸기

계산 작업과 네트워크 작업

hashPasswords(); // CPU 작업
fetchUsers();    // I/O 작업

계산 작업은 코어보다 스레드를 크게 늘려도 이득이 적고, I/O 작업은 기다림을 다른 스레드로 가릴 수 있습니다.

직접 움직여 보기1 / 5

지금 일어나는 변화

작업 100개

실행하거나 기다려야 할 일이 많이 존재합니다.

신호와 실행 장치작업 100개단계 1스레드단계 2준비 대기열단계 3CPU 코어단계 4I/O 대기 교대단계 5CPU 차례현재: 작업 100개

이 그림에서 기억할 한 문장

적절한 스레드 수는 코어 수만이 아니라 작업이 계산하는 시간과 기다리는 시간의 비율에 달려 있습니다.

현재 상태

이동하는 것
CPU 차례
현재 위치
작업 100개
다음 위치
스레드

30초 확인 문제

CPU 계산만 계속하는 작업의 스레드를 코어보다 훨씬 늘리면?

처음 보는 용어 두 개

코어
독립적으로 명령 흐름을 실행할 수 있는 CPU 처리 단위
하드웨어 스레드
한 코어의 자원을 나눠 여러 명령 흐름 상태를 유지하는 기능

이 절을 다 읽었다면

적절한 스레드 수는 코어 수만이 아니라 작업이 계산하는 시간과 기다리는 시간의 비율에 달려 있습니다.

← 이전 절

4.4 if 문은 CPU 파이프라인을 왜 흔들까?

다음 절 →

4.6 복잡 명령어 집합은 왜 탄생했을까?