-
Memory 에 대한 기초카테고리 없음 2021. 4. 20. 14:33
메모리에 대해 알고 프로그램을 만드는것과 그렇지 못한것은 아주 큰 차이가 있습니다. 컴퓨터공학의 기초라고 할 수 있죠...!
메모리
0과 1을 저장할 수 있는 반도체
메모리는 전압차이를 이용해서 데이터를 저장합니다.
0 : 전기 off / 1: 전기 on 인것이죠.
가장 작은 공간을 Bit 라고 부르고 -> 종류와 관계 없이 모두 2진수로 저장됩니다.
8개 bit가 모인 1byte 가 기본 단위죠
1bit에는 0과 1을 저장할 수 있죠.
2bit는 모두 0과 1의 조합으로(00,01,10,11) 4개를 저장할 수 있습니다.
...
8bit는 0~255 까지 저장가능합니다. 만약, 양수와 음수를 모두 저장한다면 -128 ~ 127 로 범위가 줄어듭니다.
실제 데이터를 저장할때는
최상위 비트로 양수(0)와 음수(1) 를 저장합니다. - Sign bit 라고 합니다. 그러면서 자연스레 실제 저장하는 데이터 비트는 하나 줄어듭니다.
더 큰 단위를 볼까요?
https://www.101computing.net/how-many-bytes-in/how-many-bytes-in-2/ bit 를 제외하고 모두 1024만큼인것을 볼 수 있죠~
CPU는 주소 register를 통해 메모리 주소에 접근합니다.
32 bit -> 약 42억개 : 4GB(최대용량) / 64bit -> 1800경? -> 16EB (이론상입니다. 실제로는 더 작지만 아주 크다고 볼 수 있죠)
Code
Data
Heap : 동적으로 할당된 파라미터 - 공간의 크기를 예측하기 어려움
Stack : 지역변수 파라미터 - 함수호출 (LIFO)
여기서 값 형식과 참조형식에 대해서 공부해야합니다.
-> 더 자세하게 Swift 기준으로 정리하겠습니다.
728x90