면접에서 단골처럼 등장하는 질문이자, 컴퓨터 공학과 시험에서 한번쯤은 보았을 법한 CS 기본 지식을 정리하고자 한다.
컴퓨터는 데이터를 저장할 수 있는 몇가지 종류의 공간들을 갖고 있고, 해당 공간들은 쓰임새가 다르고 만들어진 이유가 다르기 때문에 각각 I/O 작업에 있어서 다른 퍼포먼스를 낸다.
그 중에서도 Access 에 대한 다음 Computing Operation 의 속도 비교는 알아두어야 한다.
- CPU Register
- Context Switch
- Memory Access (RAM)
- Disk Seek (HDD)
위의 Operation 들에 대한 속도 비교 결과는 빠른 순서대로 다음과 같다.
1. CPU Register Access
2. Memory Access
3. Context Switching
4. Disk Seek
(1) CPU 레지스터에 대한 접근은 단 한번의 CPU 사이클만으로 이루어지기 때문에 즉각적으로 이루어진다.
한 사이클이라는 것은 말그대로 번개와 같은 속도로 이루어진다는 뜻이다.
(2) Memory Access 는 일반적으로 RAM 에서 데이터를 읽어내는 것을 말하며, 당연히 RAM 의 목적에 맞게 HDD 로부터 읽어오는 것보다 빠르다.
일반적인 상태에서의 작업은 레지스트리에 접근하는 것에 비견될만큼 빠를 수 있지만 논리 구조 위에서 동작하기 때문에 Virtual Memory Swapping 과 같은 작업에서 자유로울 수 없으며 이런 경우에는 Disk Access 만큼 느려질 수도 있다.
(3) Context Switching 는 대체적으로 빠른 접근이 보장이 된다. 하지만 여러개의 프로세스가 동시에 실행되며 스위칭이 빈번하게 이뤄질 경우 굉장히 느려질 수도 있다.
(4) Disk Seek. HDD 에 대한 Disk Seek 은 위에 언급한 Operation 들에 비해 빠를 수가 없는 작업이지만 캐싱을 통해 비약적인 성능 향상이 가능하다.
BUS 에서의 병목을 피할 수 있으며 캐싱을 통해 Main Memory 에 Access 하는 것 만큼의 퍼포먼스를 기대할 수도 있다.
면접에서 갑작스레 질문받은 내용이라 당황했던 적이 있었다.
알고있었던 내용이라 답변은 잘 했으나... 끝나고나서 다시 점검해볼만큼 기본기가 아직 충분치 못한 것 같아 정리해둔다.
'Computer Base > Computer Engineering' 카테고리의 다른 글
Software Oriented Architecture(SOA) 의 정의와 Micro Service Architecture (0) | 2019.05.12 |
---|---|
Google Protobuf 사용 시 알아두어야 할 몇가지 Tip 들 정리 (0) | 2019.05.06 |
Method 와 Function 의 차이에 대한 이해 (0) | 2019.02.26 |
Cache 에 대한 이론적인 정리 (0) | 2019.02.20 |
CQRS란? CQRS 에 대한 정리 (0) | 2018.11.16 |