먼저 어느정도 아시는 분이라면, x64는 64비트 x86은 32비트를 의미하는 것을 압니다.
즉, 이번 글에서는 32비트 프로그래밍과 64비트 프로그래밍의 차이에 대해서 알아보려합니다.
1. 32비트 vs 64비트
차이는 레지스터의 처리값
CPU는 I/O버스를 통해 데이터 내,외부로 전송합니다.
그 한 번에 데이터를 전송하는 양이 32bit, 64bit 입니다.
2. 32비트 컴퓨터와 64비트 컴퓨터 차이
RAM에서 표현할 수 있는 주소값에서 보인다.
2^32 = 2^2 * 2^30 = 4 * 2^30 = 4 GB
즉, 4GB 초과한 메모리 영역에는 참조할 수 없고, 32비트 CPU에서는 4GB RAM을 인식하지 못한다.
3. 궁금증
Q. 32bit 프로그램은 64bit 운영체제에서 작동하지 않는가?
A. Wow64 (Windows on Windows 64) 32비트 프로그램이 64비트 운영체제에서 작동하게 도와준다고 한다.
그러나, DLL은 따로 빌드를 거쳐 32bit, 64bit를 따로 나눠야한다.
Q. 32bit는 왜 x32가 아니라, x86으로 표현되는가?
A. 통칭 x86계열의 CPU가 32bit를 지원했다고 한다. 즉, x86이 32bit이다 라고 말할 수 없다.
그리고 x86-64를 줄여서 x64라고 한다고 한다.
더 궁금한 것은 추가로 올릴 예정이다.
'개발 > 개발자 면접 준비' 카테고리의 다른 글
빌드과정 ( 전처리, 컴파일, 어셈블리, 링킹 ) (0) | 2019.11.07 |
---|---|
Procedure, Function (0) | 2019.10.02 |
Call by Value, Call by Reference (0) | 2019.10.01 |