시스템 프로그래밍

64비트 기반 프로그래밍

은행털이 2024. 10. 18. 12:16

32비트 64비트 시스템의 구분 방법

  • 한번에 송수신 할 수 있는 데이터의 크기
  • 한번에 처리할 수 있는 데이터의 크기

 

프로그래머 입장에서의 64비트 시스템

- Windows에서는 32비트에서 64비트로 갈 때, 기존 32비트의 호환성을 중시

- 프로그램으로 표현할 수 있는 범위가 증가 > 표현할 수 있는 메모리 크기 증가(32비트는 4GB 제한)

- 활용 가능 메모리의 확장으로 동적할당이 자유로움

- 32비트 포인터가 64비트 포인터로 변경

 

 

프로그램 구현 관점에서의 64비트 시스템

- 64비트 기반 프로그래밍은 64비트 시스템을 고려한 프로그래밍으로 자료형에 대해 생각해야한다.\

- 32비트 시스템과의 호환성을 중시한 모델은 LLP64, LP64가 있다

OS 모델 char short int long 포인터
Windows LLP64 1Byte 2Byte 4Byte 4 Byte 8 Byte
UNIX LP64 1 Byte 2 Byte 4 Byte 8 Byte 8 Byte

 

 

Polymorphic 자료형

- Polymorphic은 다형성을 의미하며 32비트와 64비트 환경에서 자료형들의 크기와 타입이 다르게 정의되므로 이 이름이 붙게 되었음

- 포인터값 기반의 산술연산을 위해 설계된 자료형으로 32비트, 64비트 시스템 간의 포인터정밀도 불균형 때문에 발생할 수 있는 문제를 해결하기 위해 등장하였음

 

 

 

GetLastError 함수

- 가장 많이 호출하는 함수 중 하나

- Windows 시스템 함수를 호출하는 과정에서 오류가 발생하면 이 함수로 오류의 원인 확인이 가능
- 일반적으로 오류가 발생시 NULL을 반환하므로 NULL값으로 오류가 발생함은 알지만 원인은 모름
- 이어서 GetLastError함수를 호출하면 오류의 원인에 해당하는 에러코드를 볼 수 있음

'시스템 프로그래밍' 카테고리의 다른 글

커널 오브젝트와 오브젝트 핸들  (0) 2024.10.18
프로세스의 생성과 소멸  (0) 2024.10.18
컴퓨터 구조 2  (0) 2024.10.18
아스키코드와 유니코드  (0) 2024.10.18
컴퓨터 구조  (1) 2024.10.18