본문 바로가기
C언어 공부(홍정모의 따라하며 배우는 C언어)

홍정모의 따라하며 배우는 C언어[0.4~0.6]

by Min-joong 2022. 10. 3.

안녕하세요. 정말 오랜만이네요. 한동안 정말 뜸했는데 제가 군대에서 적응하느라 정신이 없었어요.. 사실 정신없었다기보다는 너무 나태해졌던 거 같아요. 이제부터라도 다시 정신 차리고 꾸준히 공부하면서 정진해 나가도록 하겠습니다. 그럼 프로그래밍 일기 다시 시작하겠습니다!


0.4 컴퓨터는 왜 이진수를 사용할까?

흔히들 컴퓨터의 정보는 이진수로 이루어 졌다는 소리를 많이 들어봤을 거예요. 즉 0과 1만으로 모든 정보를 표현할 수 있다는 거죠.

근데 어쩌다가 10진수 16진수가 아닌 이진수로 모든 정보를 표현하게 된걸까요?

그 이유는 진공관의 원리를 통해 알 수 있습니다. 진공관이란 간단하게 말해 Cathode라는 부분에서 전자가 방출되고 Plate 부분에서 이 전자를 받아들입니다. -에서 +로 이동하는 거죠. 이때 중간에 전극을 두고 전압을 걸어주면 이 흐름을 통제할 수 있어요. Cathode에서 Plate로 전류가 흐르면 '1' 전극에 전압을 걸어 전류가 통하지 않으면 '0'이 되는 거예요.이 진공관의 원리는 컴퓨터의 기본 구성요소가 되는 트랜지스터의 원리와 매우 비슷합니다.

 

트렌지스터의 3개의 다리는 각각 C: collector, B: base, E: emiter인데 여기서 C는 진공관의 Cathode E는 Plate B는 중간에 전극과 같은 역할을 한다.0과 1을 표현할 수 있는 이 트랜지스터들이 수십 억 개가 들어가 여러 가지 정보를 처리할 수 있는 장치를 만들었는데 그것이 바로 컴퓨터의 주된 연산과 정보처리를 맡는 'CPU'이다. 


06. 컴퓨터 메모리의 기본 구조

저번에도 한번 설명했지만 CPU와 가장 가까이서 정보를 주고받는 것은 주기억장치(메모리)이다. 메모리에 중요한 정보를 저장해 놨다가 CPU가 연산할 때 바로바로 가져가서 연산 후 다시 메모리에 돌려놓게 된다. 

메모리는 임의 접근(Random access) 방식을 사용하는데 이는 순차 접근 방식보다 매우 빠르게 정보를 처리할 수 있다. 순차 접근 방식은 하나하나 모든 데이터를 훑어보지만 임의 접근 방식은 해당 데이터의 주소를 주면 바로 그 주소에 해당하는 데이터를 찾아 쓸 수가 있다. 

메모리는 방(cell)의 집합체인데 이 하나의 방은 트랜지스터와 커패시터 하나씩이 존재한다. 트랜지스터를 통해 0과 1로 정보를 나타내면서 1bit씩 저장한다. 흔히 우리 휴대폰 메모리의 용량이 64GB 128GB인 것을 보면 이 하나의 공간이 얼마나 작은지 어림잡을 수 있을 것이다.

위 그림은 어떻게 CPU와 메모리가 데이터를 주고받는지 아주 잘 알려주는 그림이다. CPU와 메모리는 데이터를 주고받을 때 adress bus와 data bus 그리고 control bus를 사용한다. 처음에 control bus를 통해 메모리에 정보를 줄 것인지 받을 것인지를 정하는데 만약 정보를 준다고 하면 adress bus를 통해 정보를 줄 장소를 알려주고 data bus를 통해 해당 데이터를 전달한다. 만약 정보를 받는다고 하면 adress bus를 통해 정보를 받을 메모리 주소를 알려주고 data bus를 통해 그 주소로부터 정보를 받아온다.

이처럼 random access 방식을 사용하기 위해서는 pointer가 필요하고 이를 사용하는 C/C++은 프로그램을 세세하게 제어할 수 있고 속도도 다른 언어에 비해 훨씬 빠르다.


오랜만에 글을 써서 많이 어색하고 어렵지만 앞으로 계속 발전하는 모습 보여주도록 하겠습니다. 부족한 글 봐주셔서 감사하고 군대에서도 꾸준히 나아가도록 하겠습니다. 좋은 하루 보내세요.

 

출처:https://www.inflearn.com/course/following-c#curriculum

 

홍정모의 따라하며 배우는 C언어 - 인프런 | 강의

'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., - 강의 소개 | 인프런...

www.inflearn.com