본문 바로가기

프로그래밍 서적/쉽게 배우는 운영체제

Part1. 운영체제와 컴퓨터(chap 02)

반응형

Chapter 02 - 컴퓨터의 구조와 성능 향상

 

컴퓨터는 필수 장치CPU(중앙 처리 장치)와 메인메모리, 주변 장치입력장치, 출력장치, 저장장치로 이뤄져 있다. 이러한 부품들은 버스로 연결되는데, 여기서 말하는 버스란, 각 장치를 연결하는 선의 집합이자 데이터가 지나다니는 통로를 의미한다.

 

오늘날의 컴퓨터는 폰노이만 구조를 따르며, "모든 프로그램은 메모리에 올라와야 실행할 수 있다."는 특징을 갖는다.

 

운영체제의 여러 현상을 돕기 위해 요리사 모형이란 것이 있는데, 요리사는 CPU, 도마는 메모리, 보관 창고는 저장장치에 비유되며, 보관 창고에 있는 재료를 도마로 옮기는 주방 보조와 채소를 다듬거나 하는 등의 보조 요리사도 있다. 즉, 요리 방법을 결정하는 것은 운영체제의 프로세스를 관리하는 것과 같고, 도마를 정리하는 것은 메모리를 관리하는 것이며, 보관창고 정리는 저장장치 관리와 같다고 생각하면 된다.

 

하드웨어의 주요 용어 중, Clock(클록) CPU의 속도와 관련된 단위이다. 클록이 일정 간격으로 Tick(틱)을 만들면(= 클록틱), 거기에 맞춰 CPU안의 구성 부품이 작업을 한다.

다른 용어인 Hz(헤르츠)클록틱이 발생하는 속도를 나타내는 단위이다. 즉, 1초에 1번이면 1Hz, 1000번이면 1kHz이다.

 

CPU는 산술논리 연산장치, 제어장치, 레지스터로 구성되어 있다. 산술논리 연산장치는 말 그대로 데이터의 덧셈, 빨셈 등의 산술연산과 AND, OR 같은 논리 연산을 수행한다. 제어장치는 CPU에서 작업을 지시하는 부분이며, 레지스터는 CPU내에 데이터를 임시로 보관하는 곳을 말한다. 레지스터는 다양한 종류가 있다.

 

모든 프로그램은 메모리에 올라와야 실행된다. 즉, 실행에 필요한 프로그램과 데이터가 메모리에 존재하며, CPU와 협업해 이뤄진다. 메모리는 읽거나 쓸 수 있는 RAM(Random Access Memory)와 읽기만 가능한 롬(Read Only Memory)로 구분된다. SDRAM은 동기 DRAM으로, 클럭틱이 발생할때마다 데이터를 저장한다.

흔히 메모리를 살 때 보는 DDR SDRAM 란 무엇일까?
CPU 는 3GHz 이상의 매우 빠른 속도지만, SDRAM은 메인 보드의 시스템 버스와 같은 속도로 작동해 속도가 느리다는 문제가 있다. 이러한 속도 차이를 완화하기 위해 SDRAM의 대역폭을 늘려 데이터 입출력 속도를 빠르게 한 것이 DDR(Double Data Rate) SDRAM이다. 즉, 4SDRAM == 2DDR SDRAM == DDR2 SDRAM 의 대역폭을 가졌다고 생각하면 되며, 더 빨리 저장할 수 있다는 의미로 받아드리면 된다.

 

Buffer(버퍼)속도에 차이가 있는 두 장치 사이에서 그 차이를 완화하는 역할을 한다. 예를 들어, 박스에서 하나씩 귤을 꺼내 먹는것 보다, 바구니에 귤을 몇개 꺼내와 먹는게 더 효율적이다. 즉, 바구니를 버퍼라 생각하면 된다. 입출력 장치 역시 마찬가지로, 일정량의 데이터를 모아 옮김으로써 속도의 차이를 완화하는 장치가 버퍼이다. 하드디스크 사양이 1TB, 7200rpm, 32MB라면, 용량이 1TB, 디스크의 회전 속도가 7200rpm, 버퍼의 용량이 32MB라는 의미이다. 즉, 같은 사양이라면 버퍼의 용량이 큰 것이 빠르다.

 

Cache(캐시)메모리와 CPU 간의 속도 차이를 완화하기 위해 메모리의 데이터를 미리 가져와 저장해두는 임시 장소이다. 필요한 데이터를 한꺼번에 전달하는 버퍼의 일종으로, CPU가 앞으로 사용할 것으로 예상되는 데이터를 미리 가져다 놓는다. 캐시는 CPU 안에 있으며, CPU 내부 버스의 속도로 동작하며, 시스템 버스의 느린 속도로 동작하는 메모리와의 속도 차이를 완화해준다.

캐시는 메모리의 내용 중 일부를 가져오고, CPU는 메모리에 접근해야 할 때 캐시를 먼저 방문해 데이터의 유무를 확인한다. 원하는 데이터를 찾았다면 Cache hit(캐시 히트)라 하며, 그 데이터를 사용하지만, 없다면 메모리에 가서 찾는데 이를 Cache miss(캐시 미스)라고 한다. 캐시 히트가 되는 비율을 Cache hit ratio(캐시 적중률)이라 하며, 일반적인 컴퓨터의 캐시 적중률이 약 90%이다. 컴퓨터의 성능을 향상하려면 캐시 적중률이 높아야하며, 높이는 방법 중 하나는 캐시의 크기를 늘리는 것이다. 다른 하나는 앞으로 많이 사용될 데이터를 가져오는 것이다.

 

초기 컴퓨터 시스템에는 주변장치가 많지 않아 CPU가 직접 입출력장치에서 데이터를 가져오거나 내보냈는데, 이를 Polling 방식이라 한다. 즉, 요리사가 요리하다 말고 보관창고에 가 재료를 가져오는 것을 말한다. 하지만, 효율이 좋지 못했고, 이를 해결하기 위해 Interrupt(인터럽트) 방식이 나왔다. 이는 입출력 관리자가 CPU에 보내는 완료 신호를 말하며, 예를 들어, 요리사 옆에 보조 요리사를 두어 요리사는 계속 요리를, 보조 요리사에겐 재료를 가져오는 등의 작업을 시키는 것을 말한다.

 

 

 

 

오늘은 중요한 개념인 메모리와 캐시에 대해 공부를 했다. 캐시가 무엇인진 얼핏 알았고, 면접 시 설명을 못했는데, 이렇게 배우게 되니 그동안 어렴풋이 알고만 있던 개념이 더 머리 속에 들어왔다.

캐시는 "앞으로" 진행할 것을 넣는 공간으로, 자료구조로 예로 들자면, 스택같은 형태로 볼 수 있다. 앞으로 진행할 것을 예상해 넣고 가장 마지막에 넣은 예상 안을 꺼내 보여주는 형식으로 생각해도 될 것 같다.

반응형