컴퓨터의 동작 원리와 구조

YEONGHUN KO·2022년 1월 10일
0

CS

목록 보기
2/6
post-thumbnail
post-custom-banner

1. 컴퓨터의 동작 원리와 구조

예전부터, CS강의를 듣고 컴퓨터의 근본 개념에 대해서 꼭 공부해야겠다고 생각했었는데 유튜브에 보석같은 강의를 발견했고 들었다. 그리고 마침 또 친구 개발자가 이것저것 컴퓨터의 작동원리를 설명 해 주었는데 CS강의와 연관되는 내용이 있어서 이 깨달음이 증발하기 전에 정리해야겠다고 생각해서 정리한다. 아주 간략하게.(보석같은 강의의 링크를 달아둔다. 아래에)

유튜브 CS강의

memory에 정보 저장

컴퓨터는 모든것을 0,1로 해석해서 정보를 저장하고 처리한다. 이진수를 기본 베이스로 깔아두는 것이다.

변수나 함수를 선언하면 그 인간의 언어를 컴퓨터는 전부 0,1로 바꿔서(compile해서) 이해하고 메모리에 저장을 해둔다. 인간이 쓴 영어로된 코드를 source code라고 하고 그걸 compile해서 컴퓨터가 이해할 수 있도록 0,1 로 바꾼 0,1을 machine code라고 한다. (이 개념은 상당히 low level 까지 파내려간 경우다.)

그리고 machine 코드는 ram이라는 메모리에 저장된다.

그리고 그 메모리 안에 있는 모든 장소에는 '주소'가 있다. 저장될 때 우리는 그 저장된 곳의 주소를 따로 변수에 저장해서 사용할 수 있다. 이때 포인터의 개념이 들어가는 것이다. 예를 들어, swap을 할때 int x= 1 / int y = 2를 swap(a,b)에 넘겨주었다고 하자. 이때 a,b에 x,y 변수가 메모리에 저장된 주소를 넘겨주어야 x,y가 바뀐다 그렇지 않으면 x,y의 복사본이 넘어가고 복사본만 바뀌고 원본은 바뀌지 않는다.

한마디로, x,y의 포인터를 변수에 담고. 그 변수를 따라가면 x,y의 위치를 알고 그 안에 들어있는 원본에 접근 할 수 있게 되는 것이다.

메모리 맨위에는 machine code가 저장, 그밑에는 변수 그밑에는 heap이 저장된다.

또한 c언어에서는 malloc(memory allocation) 을 통해 메모리안에 어떤 크기만큼 공간을 할당 받고 거기에 다른 공간에 저장된 정보를 복사할 수 있다. 하지만 나중에 free를 통해 내가 할당 받았던 공간을 다시 반납해야한다. 그래야 불 필요한 메모리 소모를 줄일 수 있기 때문이다.

컴퓨터의 구조

컴퓨터 구조에 대해서 또 간략하게 설명해보려고 한다. 컴퓨터는 cpu, cachememory, ram, ssd, hdd로 크게 구성이 되어져 있는데, cpu가 hdd에 저장되어있는 정보를 ram에 저장해놓고 필요할 때 마다 꺼내서 쓴다.

cpu는 ram에 필요없는 것은 삭제하여 나중에 더 중요한 정보가 저장되도록 항상 ram을 최적화 시켜놓는다. 그래서 cpu는 빛의 속도만큼 매우 빠르게 움직이며 운반, 저장, 연산, 관리와 같은 작업을 하는 것이다.

profile
'과연 이게 최선일까?' 끊임없이 생각하기
post-custom-banner

0개의 댓글