728x90
- 5강 WIN32 vs WIN64
- 64비트와 32비트의 구분 방법
- 구분의 두가지 기준
- 한번에 송수신 가능한 데이터 크기
- 데이터 처리 능력
- cpu가 한번에 읽어들일수 있는 명령어의 크기
- 명령어 A를 CPU에 입출력버스에 이동시킬때 만약 64비트라면 64비트 시스템이라고한다.
- 데이터 이동은 입출력버스로 64로 이동을 시켰는데 cpu에서 데이터 연산은 32비트로 한다면 완벽한 64라고 할 수가 없다.
- 즉 64비트시스템이라고 하기위해서는 보통은 둘다 동일하게 64비트로 처리 되어야한다.
- 프로그래머 입장에서의 64비트 컴퓨터
- 32비트 -> 64비트 ( 우리가 프로그램에서 활용할수있는 최대메모리가 증가한것,
- 프로그램으로 표현할 수 있는 범위의 증가
- 표현할 수 있는 메모리의 전체크기
- 32비트 시스템에서는 포인터가 32비트다. 64비트 시스템에서는 포인터도 64비트이다.
- 일반적으로 포인터는 크기가 클수록좋다.
- 하지만 버스인터페이스에서 한번에 최대 이동가능한만큼 보내는게좋다.
- 개발자 입장에서는 보통 성능이 좋아졌을거라고 추상적으로만 생각한다 왜냐하면 코드가 크게 변경이 없기때문에 그러나 프로그램적으로 성능상 큰차이가난다.
- 위에 메모리는 최대램이 총 1GB임에도 하나의 주소를 표현하는데 4비트만을 사용한다면 2의 4승인 16개밖에 쓸수없다. 즉 1GB에서 사용가능한 메모리는 16바이트밖에 되지 않는다. 메인메모리는(RAM) 랜덤 엑세스 메모리는 모든 메모리에 한번에 접근(접근시간이동일) 가능해야함으로.
- 위의 그림은 예시이고 즉 32비트에서 -> 64비트로 온것은 2의 32승에서 2의 64승만큼 최대 사용가능한 메모리가 제한된다.
- 활용 가능 메모리의 확장
- 위의 예제에서 제한은 첫번째 코드가 50바이트의 상황에서 실행된다고 가정했을때는 문제가 된다. 코드가 작동할 수없다. 그러므로 두번째예제처럼 한 문자마다 읽어오면서 널문자를 만날때까지 do,while문으로 반복해서 제한적으로 프로그래밍을 해야한다.
- 즉 32비트에서 64비트로 넘어간것은 프로그래머에게 제한이 더 느슨해진것이라 할 수있다.
- 즉 결론 메모리의 크기는 크면클수록 좋다. 그러나 BUS인터페이스의 처리 최대값과 동일해야한다.
728x90
'기타 공부 기록 > 뇌를자극하는윈도우즈시스템프로그래밍' 카테고리의 다른 글
7강 : 컴퓨터 구조의 접근방법 (1) (0) | 2022.04.21 |
---|---|
6강 , Section2. 프로그램 구현 관점에서의 WIN32 vs WIN64/오류의 확인 (0) | 2022.04.18 |
4강 : MBCS와 WBCS의 동시지원 (0) | 2022.04.08 |
3강 : Windows에서의 유니코드(UNICODE) (0) | 2022.03.22 |
2 강. 프로그램의 실행과정/하드웨어 구성의 재접근 (0) | 2022.03.07 |