64비트 시스템과 32비트 시스템이 나뉘는 기준
- CPU가 I/O 버스를 통해 한 번에 전송 및 수신할 수 있는 데이터의 크기
- 데이터 처리 능력(한 번에 처리할 수 있는 데이터의 크기)
Q. 32비트 컴퓨터에서 주소값 표현을 위해 몇 비트를 활용하는 것이 좋을까?
A. 32비트 컴퓨터에서는 32비트가 최선의 선택이다.
한번에 처리할 수 있는 주소값을 포함한 데이터의 크기가 32비트이기 때문이다.
32비트로 주소값을 표현하면 주소값의 이동 및 연산이 한번에 이루어진다.
+ 당연하게도, 64비트 컴퓨터 환경에서는 포인터가 64비트로 표현되는 것이 최선이다.
Windows에서는 LLP64라는 데이터 표현 모델을 따른다.
int와 long은 4바이트, 포인터는 8바이트로 표현하는 방식이다.
32비트 환경에서는 int와 long, 포인터 모두 4바이트로 표현된다.
32비트 시스템에서는 배열이 선언된 주소값을 출력하기 위해 int형 변수에 값을 저장하여도 문제가 되지 않는다.그러나 64비트 시스템에서는 문제가 될 수 있다.int는 4바이트, 주소값인 포인터는 8바이트로 표현되기 때문에 형 변환 과정에서 데이터 손실이 발생할 수 있기 때문이다.따라서, 64비트 시스템에서는 포인터가 지니고 있는 주소값을 4바이트 정수형으로 형 변환하지 않도록 한다.
'OS > Windows' 카테고리의 다른 글
[OS/Windows] 4. 컴퓨터 구조에 관한 두 번째 이야기 (0) | 2023.10.06 |
---|---|
[OS/Windows] 2. 아스키코드 vs 유니코드 (0) | 2023.08.21 |
[OS/Windows] 1. 컴퓨터 구조에 대한 첫 번째 이야기 (0) | 2023.08.18 |