ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CPU 코어, 스레드 개념 정리
    CSS 2024. 3. 21. 14:30

    AWS에서 어플리케이션 서버를 돌리기 전에 내가 돌릴 어플리케이션 서버의 성능에 맞는 인스턴스를 선택해야 한다. 그러므로

    CPU의 코어와 스레드의 개념을 정리해 보겠다.

     

    CPU(Cental Processing Unit)

    CPU는 컴퓨터의 없어서는 안될 핵심적인 부품이다. '연산처리장치' 또는 '중앙처리장치' 즉 사람의 장기에 비유하자면 뇌에 해당된다.

    그 중 코어와 스레드는 컴퓨터 사용자가 꼭 알아야할 컴퓨터 스펙이다. 

    CPU는 오랜 시간동안 계속 변화해 왔지만 '기억', '연산', '제어'이 세 기본동작은 변함없다.

     

    우선 이 세개의 기본동작을 살펴 보겠다.

    - [기억] Processor Register : ALU에 필요한 데이터 또는 오퍼랜드(Operand)를 제공하고 저장한다. 

    - [연산] ALU (산술 논리 장치) : 프로세서가 산술 및 비트 논리 연산을 수행할 수 있다.

    - [제어] Control Unit (제어장치) : ALU, 레지스터 등 구성장치를 통해 명령을 수행한다. 

     

    * 명령어가 중앙처리장치(CPU)에 의해 실행될 때, 연산을 수행 하는데 필요한 데이터 혹은 데이터 주소를 오퍼랜드(operand)라 한다.

     

    또한 CPU는 명령 주기(Insturction Cycle)라고 알려진 일련의 단계를 따른다.

    - fetch : 컴퓨터 메모리에서 명령을 가져온다.

    - Decode : 수행할 명령을 판별한다.

    - Execute : 명령을 수행한다.

     

    대부분의 최신 CPU는 메모리, 마이크로컨트롤러(MCU) 또는 SoC(System on Chip)와 같은 다른 구성장치와 함께 집적회로 칩(IC, Integrated Chip)에 포함되어 있다. 또한 일부 CPU는 실행 중에 발생하는 열을 줄이고 프로그램 명령 실행 속도를 높이기 위해, 하나의 칩 안에 2개 이상의 CPU를 가지는 멀티 코어 프로세서(Multi-Core Processor)를 사용한다.

     

    프로세서 (Processor)

    프로세서는 프로그램 명령을 수행하기 위한 논리회로를 말한다.

     

    프로세스 (Process)

    메모리에 적재되어 실행 중이거나 대기 중인 프로그램을 프로세스라 합니다.

    * 프로세스는 create, running, ready, waiting, terminated의 5개의 상태로 나눠집니다.

     

    프로그램 (Program)

    컴퓨터에서 사용자가 원하는 목적을 달성하기 위해 목적에 맞게 특정 작업을 수행하는 일련의 명령어들의 집합이다. 즉, OS에서 얘기하는 프로그램은 컴퓨터에서 실행중인 모든 종류의 소프트웨어 프로그램들을 의미합니다.


    CPU의 사양을 살펴 보면, 보통 CPU의 코어와 스레드는 2Core 4Thread, 4Core 4Thread, 8Core 16Thread...라고 표시되어 있다. 이것은 해당 CPU의 코어와 스레드의 갯수를 나타내는 것이다. 코어와 스레드의 갯수는 많으면 많을수록 성능이 우수한 CPU이다.

     

    코어(Core)

    코어란 말 그대로 CPU의 핵심, 중심 이라는 뜻이며 CPU에게 요구되는 계산을 담당하는 연산처리 장치이다.

     

    과거에는 CPU가 끊임없이 계속해서 연산을 수행하지는 않았다. 한번 연산을 수행한 후에는 연산을 수행하지 않고 쉬는 기간이 있었다.

    하지만 발전을 통해 CPU를 구조화 함으로써 프로세서가 쉬지않고 연산을 수행 할 수 있도록 만들어졌다.

    실제로 하나의 코어가 두가지 프로세스를 같이 수행 할 수 없다.

    하나의 프로세서에 2개 이상의 코어를 가지고 두가지 이상의 연산을 아주 짧은 시간 나누고 번갈아 일을 처리 함으로써 사용자가 두가지 일을 동시에 처리하게 느끼게 되는 것이다.

    (프로세서가 하나의 프로세스를 처리하고 나서, 쉬는 기간에 다른 프로세스를 처리할 수 있도록 구조화 한 것) 

    이때 코어가 번갈아 가며 일을 처리할 수 있게 프로세스를 잘게 나눈 실행의 단위를 '스레드'라고한다.

     

    스레드(Thread)

    Core가 할 수 있는 최소한의 작업 단위이자 도구

     

    보통 1개의 코어에 2개의 스레드가 있으면 운영체제는 스레드0과 스레드1을 번갈아 가며 작업한다.('스위칭')

     

    정리하자면 코어란 하드웨어 입장에서 본 물리적 코어를 의미하며, 스레드란 운영체제 입장에서 본 논리적 코어를 의미한다.

    'CSS' 카테고리의 다른 글

    DB백업  (0) 2024.03.19
Designed by Tistory.