[CS]32/64bit 차이점 정리

반응형

모 기업 면접에서 물어본 질문 중 정확하게 답을 하지 못한 부분에 대해 정리가 필요하여 정리한다.


컴퓨터에서의 bit란? (Word size)

- 우선 워드 사이즈(Word size)란, 컴퓨터의 데이터 기본 처리 단위이다.

- 이 워드 사이즈를 기준으로 데이터를 메모리에서 레지스터에 옮기거나, ALU를 통해 데이터를 조작하게 된다. 


CPU와 운영체제에서의 bit 종류

구분
32bit
64bit
32
64
별칭
x86 또는 x86-32
x64 또는 x86-64
메모리 제한
32bit는 RAM 3.2GB 으로 제한
Windows 32bit는 4GB 사용 불가
64bit는 RAM 최대 6TB 까지 허용
(Windows 10 기준)
처리 속도
64bit에 비해 느림(한번에 처리량이 적음)
32bit에 비해 빠름(한번에 처리량이 큼)
상호 호환성
32bit 지원 가능
64bit 지원 불가
32bit 지원 가능
64bit 지원 가능
호환 OS
Windows XP
Windows 7
Windows 8
Windows Vista
Linux 모든 버전
Windows XP Pro
Windows 7
Windows 8
Windows Vista
Windows 10
MAC OS
Linux 모든 버전
처리 가능한 수
2^32 = 4,294,967,296 = 4GB
2^64 = 18,446,744,073,709,551,616
          = 2,097,152 TB = 2 EB(엑사바이트)

"표 출처 : 블로그링크 "

 

- CPU가 64bit인 컴퓨터에 32bit 운영체제를 설치 할 수 있는데 이를 하위호환성(Backward Compatibility)이라고 한다. 


차이점

1. 메모리 주소 공간 크기의 차이

  - 32bit 프로세서의 범용 레지스터의 크기는 32bit. 즉, 4바이트

  - 64bit 프로세서의 범용 레지스터의 크기는 64bit. 즉, 8바이트

  - 따라서 32bit 머신은 최대 4GB의 메모리 밖에 사용할 수 없다.

 

2. 처리속도

  - 당연히 한번에 처리 할 수 있는 워드 사이즈가 더 큰 64bit가 빠른 속도를 보인다. 

 

3. C언어에서의 Pointer의 크기

  - 32bit 시스템에서의 포인터 크기 : 4바이트

  - 64bit 시스템에서의 포인터 크기 : 8바이트

반응형