-
[시스템프로그래밍] 64비트 기반 프로그래밍 1학점은행제/시스템프로그래밍 2021. 1. 15. 12:15
WIN32와 WIN64
64비트와 32비트의 구분 방법
1) 구분의 두가지 기준
- 한번에 송수신 가능한 데이터의 크기로 구분함
- 데이터 처리 능력(명령어를 포함)으로 구분함
프로그래머 입장에서의 64비트 컴퓨터
1) 32비트 --> 64비트
- 프로그램으로 표현할 수 있는 범위의 증가
주소값을 표현하기 위해서 4비트를 사용함(2의4제곱)
주소값의 이동 및 연산 --> 2의 32제곱 (표현 가능한 주소 범위 4G) --> 2의 64제곱(수십배)
- 표현할 수 있는 메모리의 전체 크기가 수십배 증가한다
- 0000 부터 1111 까지 총 16자리를 가지고 실제 주소값을 표현하기에는 너무나도 부족함
2) 내부 메모리에 해당하는 램의 주소
- 주소의 표현 범위가 넓으면 좋은 이유는 한번에 처리할 수 있는 데이터가 많아지기 때문임
- 운영체제에서 프로그램 실행을 위한 가상의 주소임
- 메모리(40byte) 부족으로 프로그램 실행 불가
3) 내 컴퓨터에서 RAM 할당 방법
- 주소를 표현하는데 32비트를 활용하여 232에 해당하는 4G바이트를 할당함
- 주소값은 4G까지 표현 가능 (1034*1034*1034*1034)
- 32비트 컴퓨터 : 포인터가 32비트
- 64비트 컴퓨터 : 포인터가 64비트
프로그래램 구현 관점으로 보는 WIN32 와 WIN64
1) 64비트 기반 프로그래밍
운영체제 모델 char short int long 포인터 Windows LLP64 1바이트 2바이트 4바이트 4바이트 8바이트 UNIX LP64 1바이트 2바이트 4바이트 8바이트 8바이트 2) LLP64의 장점
- WIN32 application의 소스를 크게 고치지 않고도 WIN64로 포팅 가능
- 하나의 소스로 WIN32와 WIN64 모두 동작하는 application 개발 용이
- 포인터는 64비트이므로 int, long 4바이트 정수형에 형 변환해서 사용할 경우 문제가 될 수 있음
3) 32비트와 64비트의 구분
32비트 : 32비트 컴퓨터에서 최대 RAM의 크기는 4G 바이트
64비트 : 64비트 컴퓨터에서 최대 RAM의 크기는 16테라 바이트
'학점은행제 > 시스템프로그래밍' 카테고리의 다른 글
[시스템프로그래밍] 시스템 프로그래밍 프로젝트 디자인 (0) 2021.01.18 [시스템프로그래밍] 64비트 기반 프로그래밍2 (0) 2021.01.18