본문 바로가기
CS

운영체제 기본 2 - 컴퓨터 하드웨어 구조

by seongjko 2023. 6. 28.
728x90

운영 체제는 사용자와 하드웨어 간 매개 역할을 하는 소프트웨어다.

바꿔 말하면 우리가 컴퓨터 하드웨어와 소통을 할 수 있게 도와주는 역할을 하는 프로그램이라는 얘긴데,

그렇기 때문에 컴퓨터 하드웨어 시스템의 구조에 대해 이해해야 한다.

처음 만난 사람보다는 잘 아는 친구가 더 말이 잘 통하듯

하드웨어 시스템을 알면 운영 체제의 역할을 더 잘 이해할 수 있을 것이다.

 

컴퓨터 하드웨어 시스템은 크게 4가지 부분으로 나눌 수 있다.

-> CPU, RAM, 보조메모리, 입출력장치

각각의 장치는 system bus라는 일종의 통로를 통해 서로 소통한다.  

입력장치를 통해 사용자의 입력이 들어오면 

CPU가 해당 입력을 해석하고 

보조 메모리에서 필요한 데이터 뭉치를 가져와 RAM에 올린 다음

다시 CPU가 그 데이터 뭉치를 연산해서 

출력장치를 통해 그 결과를 출력한다.

각 장치의 역할에 대해 좀더 자세히 살펴보자.

 

1. CPU

 

"정비공"

 

데이터를 연산하고 처리하는 역할을 하며 크게 3가지의 부품으로 이뤄져 있다.

ALU(Arithmetic Logic Unit) : 실질적인 연산을 담당하는 부품이다. 계산기라고 생각해도 무방하다.

Register : 프로그램을 실행하는 데 필요한 값들을 임시로 저장한다. 

CU(Control Unit) : 컴퓨터 부품들을 전기신호를 통해 제어하는 역할을 한다.

사용자의 명령이 떨어지면

CU가 보조 메모리로 전기 신호를 보내 필요한 데이터를 RAM으로 보내고

그 중 일부는 레지스터에 저장하며

ALU가 프로그램을 실행하는 데 필요한 연산을 수행한다.

 

2. RAM(주 메모리)

 

"정비공의 공구 상자"

 

CPU가 지금 당장 필요로 할 것 같은 데이터 뭉치를 보조 메모리에서 불러와

갖고 있다가 필요할 때  CPU로 넘겨주는 역할을 한다.

그런데 필요할 때마다 보조 메모리에서 그때그때 불러오면 더 간편하지 않을까?

보조 메모리는 저장 용량이 크지만 그 대신 데이터에 접근하는 속도가 RAM에 비해 매우 느리다.

그래서 관련 명령을 수행할 때 필요할 것 같은 데이터들을 RAM으로 통째로 올리고 

필요할 때마다 데이터 접근 속도가 빠른 RAM에서 데이터를 가져오는 것이다. 

마치 출장수리를 나가는 정비공이 공구상자에다

지금 들어온 AS요청에 필요할 것 같은 공구들을 잔뜩 담아가는 것과 비슷하다. 

공구들을 미리 안 챙기고 현장에 갔다가 

드라이버 필요할 때 다시 가게에 돌아와서 가져가고 

망치 필요할 때 다시 가게에 돌아와서 가져가고

줄자 필요할 때 다시 가게에 돌아와서 가져가는 것보다 

애초에 그냥 공구상자에 드라이버, 망치, 줄자를 가져가는 것이 훨씬 효율적이다.

 

3. 보조 메모리

 

"정비공의 공구 창고"

 

앞서 RAM을 CPU의 공구상자에 빗대어 설명한 바 있다.

그런데, AS에 필요한 공구가 어디 한둘인가?

버니어 캘리퍼스, 롱노즈 플라이어, 펜치, 파이프 렌치, 드라이버, 전기테이프, 스패너, 전기테스터 등등등...

각 공구들이 뭔지 알 필요는 없다. 그냥 엄청 많다는 것만 느끼면 된다.

그런데 이 많은 것들을 공구상자 하나에 담는 게 가능할 리가 없다. 

그래서 보통 창고에 정리해두고 필요할 때마다 공구상자에 골라담아 가져가 쓰는데 

이때 창고의 역할을 하는 것이 보조 메모리다.

공구 창고가 공구를 정리하고 보관하는 역할을 하듯 

보조 메모리는 데이터를 보관하고 정리하는 역할을 한다.

 

여기서 잠깐, 주 메모리와 보조 메모리 모두 메모리인데 서로 어떤 차이가 있길래 다른 용도로 쓰는 것일까?

1) volatile vs non-volatile

주 메모리는 volatile(휘발성)이고, 보조 메모리는 non-volatile(비휘발성)이다.

주 메모리에 저장된 데이터는 컴퓨터 전원이 꺼지면 사라지기 때문에 "휘발성"이고,

보조 메모리에 저장된 데이터는 컴퓨터가 꺼져도 그대로 남아있기 때문에 "비휘발성"이다.

앞서 RAM은 "공구 상자", 보조 메모리는 "공구 창고"로 치환하여 설명한 바 있다.

공구 상자는 지금 당장 필요한 공구들을 임시로 보관하는 용도이기 때문에 

AS 작업이 끝났을 때 작업에 쓴 공구들을 계속 보관하고 있을 필요는 없다. 

반면, 공구 창고는 공구들을 반 영구적으로 보관하는 역할을 하기 때문에 

가게가 폐업하지 않는 이상은 공구들을 계속 보관하고 있어야 한다.

컴퓨터도 마찬가지다.

컴퓨터 전원이 꺼졌다는 것은 사용자의 작업이 종료되었다는 뜻이므로

RAM에 있는 데이터들을 계속 저장해야 할 필요는 없다. 

그러나 컴퓨터 전원이 꺼졌다 해도 영화나 드라마, 전자책 등의 데이터는 

사라지면 안 되므로 보조 메모리에 계속 저장되어야 한다.

 

2) 데이터에 접근하는 데 걸리는 시간

RAM은 Random Access Memory라는 뜻이다. 

RAM은 어느 위치에 저장된 데이터든지 상관없이 접근(읽기 및 쓰기)하는 데 동일한 시간이 걸리기 때문에 

저장된 Data에 Random으로 Access해도 똑같은 시간이 걸리는 Memory라고 해서 RAM이다.

반면, 보조 메모리는 데이터가 물리적으로 어느 위치에 있느냐에 따라서 접근하는 데 걸리는 시간이 다르다.

 

반응형

'CS' 카테고리의 다른 글

가상화에 대하여  (0) 2023.06.29
포트와 소켓 - 네트워크  (0) 2023.06.29
운영체제 기본 1 - 운영체제란?  (0) 2023.06.27
TCP/IP 프로토콜 간단 요약정리  (0) 2023.06.25
리눅스 TTY 모드에 대하여  (0) 2023.06.24