ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [시스템프로그래밍] 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테라 바이트

    댓글

Today
Designed by Danbee Park.