CPU와 코어
CPU는 컴퓨터의 중심에서 명령어를 메모리에서 가져와 해석하고 실행하는 반도체 유닛이다.
하나의 CPU는 여러 개의 코어를 가질 수 있으며, 이러한 코어들은 CPU가 동시에 여러 작업을 효율적으로 수행할 수 있도록 해준다.
컴퓨터 사양을 보면 "4코어 8스레드"라는 표현을 자주 볼 수 있다.
- 4코어란 CPU에 물리적 코어가 4개 있다는 의미다. 각 코어는 독립적으로 작업을 수행할 수 있는 단위다.
- 8스레드란 논리적 코어가 8개라는 의미다. 이는 하이퍼스레딩(Hyper-Threading) 기술 덕분에 하나의 물리적 코어가 동시에 2개의 스레드를 실행할 수 있다는 뜻이다.
하이퍼스레딩 (Hyper-Threading)
하이퍼스레딩은 인텔(Intel)에서 개발한 기술로, 물리적 코어 하나가 두 개의 스레드를 동시에 실행할 수 있도록 설계된 기술이다. 이를 통해 작업 처리 속도를 높이고 CPU의 사용 효율을 극대화할 수 있다.
Concurrent(동시성) vs Parallel(병렬성)
우리는 여러 프로그램을 동시에 실행한다. 노션을 켜서 문서를 작성하고, IDE를 열어 코딩도 하고, 노래도 듣는다.
컴퓨터는 이밖에 많은 프로세스들을 어떻게 처리할까?
이러한 작업이 어떻게 처리되는지 이해하기 위해서는 동시성(Concurrency)과 병렬성(Parallelism) 개념을 이해해야 한다.
동시성 (Concurrency)
동시성이란 둘 이상의 작업이 동시에 처리되는 것처럼 보이게 하는 개념이다. 여기서 동시에라는 표현이 오해를 불러일으킬 수 있는데, 실제로는 작업이 동시에 실행되는 것이 아니라, 매우 빠르게 작업을 전환하여 마치 동시에 실행되는 것처럼 보이게 만든다.
쉽게 설명하자면, 단일 코어가 여러 작업을 번갈아가며 처리하는 방식이다. 작업 간의 전환이 매우 빠르게 이루어지기 때문에 사용자에게는 여러 작업이 동시에 진행되는 것처럼 보인다.
병렬성 (Parallelism)
병렬성이란 실제로 여러 작업이 동시에 처리되는 것을 의미한다. 이는 여러 개의 코어가 있을 때 가능하며, 각 코어가 독립적으로 작업을 수행하여 병렬로 작업을 처리하는 구조다.
멀티 프로세서나 멀티 코어 구조가 발전하기 전에는 싱글 프로세서로 재빠르게 프로세스를 전환하여 concurrent하게 동작하지만 parallel하게 동작하는 것처럼 보이도록 했다.
현재 멀티코어 시스템에서는 각 코어가 별도의 작업을 동시에 수행할 수 있다.
동시성이 필요한 이유
동시성은 동시에 돌아가는 것처럼 보이는거지 실제로 동시에 처리하는 게 아니다.
근데 왜 번거롭게 작업들을 스위칭해가면서 처리할까?
단일 CPU 코어는 여러 작업을 병렬로 처리할 수 없기 때문에 여러 작업을 짧은 시간 간격으로 전환하면서 실행하여 사용자에게 작업이 동시에 이루어지는 것처럼 보이게 하는 것이다.
동시성을 활용하여 작업을 효율적으로 처리하는 것이다!
'👶🏻 CS > Operating System' 카테고리의 다른 글
커넥션 풀과 사이즈 설정에 대하여 (0) | 2025.01.13 |
---|---|
교착상태와 해결법 (0) | 2024.11.15 |
캐시 (0) | 2024.11.12 |
가상메모리와 페이지 교체 알고리즘 (0) | 2024.11.08 |
프로세스와 스레드 (0) | 2024.11.07 |
임계 구역(Critical Section)과 뮤텍스, 세마포어, 모니터 (0) | 2024.11.01 |