ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컴퓨터 동작원리
    카테고리 없음 2016. 12. 21. 21:10




    컴퓨터 동작원리에 대해 굉장히 쉽게 이해할 수 있도록 설명한 포스팅이 있어 공유하고자 한다.



    컴퓨터의 두뇌, CPU


    CPU는 Central Processing Unit의 약자로써 '중앙 처리 장치'라고 불린다. 사람으로 따지면 '머리'에 해당하는 녀석이다. '컴퓨터 프로그램의 명렁어를 해석하여 실행하는 것' 이 주 업무다. 가령, 외부에서 정보를 입력하고, 기억하고, 연산하고, 외부로 출력되는 일들이다. CPU는 독단적으로 동작하지 않는다. 컴퓨터 내부의 여러 부품과 데이터를 교환하면서 컴퓨터 전체의 동작을 제어한다. 필자 컴퓨터의 CPU는 인텔 Intel 이라는 회사에서 판매하고 있는 i5라는 CPU다. 모델명은 M520이다. 끝족에는 2.4 GHz라는 숫자가 보인다. CPU는 기본적으로 한 순간에 하나의 연산만을 할 수 있다. 2.4 GHz의 의미는 1초에 24억 번의 연산이 가능하다는 뜻이다. 그렇기 때문에, 사람에게는 한 순간에 여러 일을 하는 것처럼 느껴진다. 숫자가 높을수록, 같은 시간에 할 수 있는 일이 많아진다. 마치, 대형 마트 계산대에 있는 종업원이 똑똑하면 똑독할 수록 계산대에 머무르는 시간이 더 짧아 지는 것과 같은 이치다. 


    또 하나 생각 할 것이, 코어의 갯수다. CPU가 듀얼 코어 이면, 머리가 두 개이니 동시에 연산이 2번 가능하다는 의미이며, 쿼드 코어 이면, 머리가 4개이니 연산도 동시에 4번가능하다는 의미로 해석 하면 된다. 코어 수가 많을수록 짧은 시간에 많은 작업을 할 수 있을 것이다. 




    컴퓨터의 손, 메모리


    메모리는 사람의 '손'에 해당한다. CPU가 데이터나 프로그램을 읽으려면 어딘가에 저장 되어 있어야 한다. 그 영역이 바로 메모리 영역이다. 마치, 주머니 속의 동전이 몇 개 있는 지 세기 위해서는 손으로 동전들을 꺼내서 손바닥에 펼쳐 봐야 아는 것과 같은 이치다. 만약, 손이 2개가 아니라 4개면 어떨까? 손에 쥘 수 있는 동전 양이 많아진다. 컴퓨터 내에서 동시에 여러 가지 작업을 신속하게 하려면, 메모리 사이즈에 영향을 많이 받는다. 간혹, 인터넷 서핑을 하다가 웹 브라우저를 너무 많이 열면, 노트북이 버벅 거리는 경우가 있다. 이런 경우가 바로, 메모리가 부족한 경우다. 위에서 잠시 언급한 대형 마트의 계산대와 비유 하자면, 계산대에 계산원이 많을 수록, 동시에 계산할 수 있는 고객의 숫자가 늘어나는 것과 같은 이치다. 


    메모리 영역의 가장 큰 장점은 '무척 빠르다' 는 것이다. 손 위에 있는 동전을 쳐다 보는 건 어려운 일이 아니다. 하지만 가장 큰 단점은 전원이 들어오지 않을 때는 데이터를 기억하지 못하는 '휘발성'의 특징을 가지고 있다라는 것이다. 힘이 빠져서 주먹을 쥘 힘조차 없어 진다면, 들고 있는 동전을 모두 바닥에 떨어뜨리기 마련이다. 그리고 값이 많이 떨어지긴 했지만, 하드 디스크에 비해서는 '고가'이다. 




    컴퓨터 속의 주머니, 하드 디스크


    엄청 많은 동전을 손에 항상 들고 다닐 수는 없게 마련이다. 게다가 힘이 빠지면 떨어뜨리기까지 하니, 오랜 시간 동안 동전을 안전하게 보관하는 용도로 손은 좋은 선택이 아니다. 하드 디스크는 메모리와는 반대로 전원이 없어도 데이터를 저장할 수 있는 '비휘발성'의 특징을 가지고 있으며, 메모리에 비해 값이 훨씬 '저렴'하다. 메모리는 개인 노트북 기준으로 현재 4 GB, 8 GB 정도의 기가바이트 단위로 이야기 하고 있지만, 하드 디스크는 TB(테라 바이트) 시대다. 용량이 클수록 더 많은 데이터를 저장할 수 있다. 하지만 가장 큰 단점은 '느리다' 는 것이다. 아무래도 손에 있는 동전을 세어 보는 것 보다, 주머니 속에 있는 동전을 꺼내서 보는 것이 훨씬 느리다. 


    한 가지 더 언급 하자면, CPU는 메모리를 거치지 않고 하드 디스크의 데이터를 읽을 수 없다! 무조건 메모리를 거쳐야 한다. 주머니에 있는 동전을 세려고 본인 주머니를 뚫어져라 쳐다 보더라도, 세지 못 하는 것과 같은 이치다. 그렇기 때문에, 메모리와 하드 디스크 사이에 데이터 이동은 무척 빈번하며, CPU 연산 시 특정 데이터를 읽을 때, 해당 데이터의 위치가 메모리에 있는지 아니면 하드 디스크에 있는지에 따라서 CPU 연산 속도에 지대한 영향을 미친다. 메모리에 있다면 디스크를 읽을 필요가 없으니 신속하게 처리가 가능하겠지만, 메모리가 아닌 하드 디스크에 데이터가 있다면, 하드 디스크의 데이터를 읽어서 메모리에 얹은 다음에 읽어야 하니, 훨씬 응답 속도가 더디게 된다. 실제로 측정해보면, 몇 십배, 몇 백 배가 된다 해도 과언이 아니다. 이러한 성능 문제는 오늘날 컴퓨터 프로그래밍의 트랜드에도 큰 영향을 미치고 있다. 



    컴퓨터와의 대화의 수단, 프로그래밍 언어


    프로그래밍 언어는 컴퓨터의 머리라고 할 수 있는 CPU에게 어떤 작업을 하라고 명령을 내리는 언어다. 이 명령어를 통해서 컴퓨터는 사람이 입력하는 숫자를 기억하거나, 복잡한 연산을 처리하거나, 사람에게 멋진 화면을 제공 하는 등의 일을 수행한다. 이러한 프로그래밍 언어는 사람이 사용하는 언어와 같지 않다. 실제로 컴퓨터가 이해할 수 있는 언어는 오로지 2개의 숫자의 조합 뿐이다. 바로 0과 1뿐이다 (이진수 혹은 바이너리 Binary라고 한다) 하지만, 사람은 0과 1만 가지고는 대화를 나눌 수가 없다. 그렇기 때문에, 프로그래밍 언어는 이 둘 사이의 간격을 채워 주는 역할을 한다. 사람에게는 친숙한 언어를 통해 프로그램을 작성할 수 있게 도와주고 프로그래밍 언어가 자체적으로 가지고 있는 고유한 번역 기능을 통해 컴퓨터가 알아 들을 수 있는 0과 1의 숫자 조합으로 변경하여 프로그램이 실행할 수 있게 해 준다. 





Designed by Tistory.