본문 바로가기
TIL/CS

CPU와 메모리 예상 문답

by J1-H00N 2023. 8. 22.

CPU란?

수행자의 명령에 대한 작업을 수행하는 처리장치

 

CPU의 동작 원리

기계어로 온 명령을 인출하고, 어셈블리어로 해독한 다음 레지스터에 데이터를 올려 연산장치를 통해 작업을 수행한다.

 

CPU 캐시 메모리와 L2, L3 캐시 메모리의 차이

CPU 캐시 메모리는 CPU 연산을 위한 임시 데이터를 저장하는 곳이고, L2와 L3 캐시 메모리는 메인 메모리가 CPU의 속도를 따라잡기 위해 미리 데이터를 올려놓는 공간이다.

 

메모리란?

메모리는 캐시 메모리와 메인 메모리로 나뉘며, 앞서 말한 CPU 캐시 메모리(L1), L2, L3가 여기에 포함된다. 캐시 메모리는 SRAM으로 불리며, 정적 메모리로서 전원이 공급되는 한 기록이 지워지지 않는다.

메인 메모리는 주기억장치에 해당하며, DRAM으로 불린다. CPU가 처리중인 데이터를 임시적으로 저장하는 공간이며, 동적 메모리이기 때문에 주기적으로 재충전을 해줘야 한다.

 

SRAM과 DRAM의 차이

가장 큰 차이점은 SRAM은 정적 메모리이며, DRAM은 동적 메모리라는 것이다. 접근 속도는 SRAM > DRAM 이며, 둘 모두 전원이 공급되어야 기록을 저장할 수 있지만 SRAM은 재충전이 필요없고, DRAM은 재충전이 필요하다.

 

명령어 입력 시 CPU와 메모리가 어떻게 연동되어 작동하는가

우선 CPU가 작업중인 프로세스들은 DRAM에 저장되어 있고, 명령어가 입력되고 CPU가 해독한 뒤 명령을 수행하기 위한 데이터를 요청하면 메인메모리에서 미리 DRAM에 올려놓은 데이터를 SRAM에 올리고, 그 데이터를 L1에 올린 뒤 레지스터가 그 데이터를 가져와 CPU는 해당 데이터로 연산을 진행한다.

 

CPU 스케쥴링이란? 그리고 왜 필요한가

CPU 스케쥴링이란 실행중인 프로세스에 자원을 적절하게 배정하는 방법을 말하고, 이렇게 해야만이 CPU의 한정된 자원을 효율적으로 사용할 수 있기 때문이다.

 

선점 스케쥴링의 다단계 큐란?

다단계 큐는 일종의 이중 스케쥴링인데, 큐를 메모리 크기, 유형 등을 기준으로 여러개로 나누고 각 큐에 다른 알고리즘을 가지게 해서 우선순위를 배정하는 방식이다.

 

선점 스케쥴링 vs 비선점 스케쥴링

가장 큰 차이는 선점 스케쥴링은 OS가 CPU 자원을 각 알고리즘의 기준에 따라 자원을 관리하는 방식이라면, 비선점은 각 프로세스가 종료될 때까지 실행을 보장해 공정하게 순서대로 처리한다. 선점 방식은 최대한 빠른 응답시간을 요할 때 사용할 수 있지만 처리 시간 예측이 어렵고, 비선점 방식은 스케쥴러 호출빈도와 오버헤드가 낮으며 처리시간 예측이 쉬우나 CPU 사용시간이 긴 프로세스가 있으면 다른 프로세스들의 대기시간이 길어질 수 있다는 단점이 있다.

 

Redis 왜 사용할까?

NoSQL 중 key-value store 형식 중 가장 인기있는 데이터베이스 서버다.

 

인메모리 데이터 구조란?

Redis도 사용하는 구조인데, SSD나 HDD같은 메모리가 아닌 RAM에 데이터를 올려 사용해 속도적 측면에서 큰 장점이 있는 방식이다. 물론 그만큼 용량적 측면에서는 단점이 존재한다.

 

왜 메모리에 데이터를 저장하면 빠를까?

설계상에 문제다. SSD나 HDD는 큰 용량의 데이터를 안정적으로 저장하기 위해 설계된 방면 RAM은 리드 & 라이트를 최단시간에 하도록 설계되었다. 거기다 용량도 크게 차이나기에 처리속도도 그에 비례해서 늘어난다.

 

'TIL > CS' 카테고리의 다른 글

디자인 패턴  (0) 2023.10.11
DBMS의 기능과 종류  (0) 2023.08.30
쓰레드와 쓰레드 풀  (0) 2023.08.24
프로그램과 프로세스  (0) 2023.08.22
CPU와 메모리  (0) 2023.08.21