LISTORY
[윈도우즈 시스템 프로그래밍] 1부 정리(3) 본문
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책 관련 유투브 강의 1부 정리 파트이다.
오늘은 1부의 3장을 정리하도록 하겠다.
3장. WIN32 vs WIN64
하드웨어 관점에서 시스템이 몇 비트인가 구분하는데에는 두가지 기준이 있다.
1. 한번에 송수신 가능한 데이터 크기
2. 데이터 처리 능력
한번에 송수신 가능한 데이터 크기는 I/O 버스에 의존적이다. 즉, I/O 버스가 한번에 송수신 할 수 있는 데이터 크기를 뜻한다.
데이터 처리 능력은 CPU가 한번에 읽어들일 수 있는 명령어의 크기를 뜻한다.
32비트 시스템은 한번에 CPU에서 32비트의 명령어를 처리할 수 있다는 뜻이다.
그럼 64비트 시스템은 한번에 64비트의 명령어를 처리할 수 있다는 뜻인데, 그럼 한번에 64비트의 명렁어를 사용할가?
⊙ 우리가 4바이트 포인터에 익숙한 이유
일반적으로 32비트 시스템에서는 포인터가 32비트(4바이트), 64비트 시스템에서는 포인터가 64비트(8바이트)이다.
포인터가 크면 클 수록 우리가 표현 가능한 주소의 값이 커진다. 즉, 접근할 수 있는 메모리의 공간이 커진다.
이렇게 포인터의 크기가 크면 클수록 좋지만 하나의 문제점이 있다. 바로 버스의 크기이다.
아무리 포인터의 크기가 크다해도 버스의 크기가 작으면 주소를 한번에 전송할 수 없다. 두세번에 걸쳐 나눠 보내줘야 하는데
이는 시스템에 전체적인 성능 저하를 가져온다.
즉, 포인터의 크기는 버스가 한번에 송수신 할 수 있는 크기인 것이 좋다.
그러므로 우리는 64비트 시스템을 사용해도, 32비트 시스템의 컴퓨터를 주로 사용하였기 때문에 4바이트의 포인터에 익숙한 것이다.
'IT > 윈도우 프로그래밍' 카테고리의 다른 글
[윈도우즈 시스템 프로그래밍] 2부 정리(2) (0) | 2018.09.01 |
---|---|
[윈도우즈 시스템 프로그래밍] 2부 복습 (1) (0) | 2018.08.30 |
[윈도우즈 시스템 프로그래밍] 1부 정리(2) (0) | 2018.08.19 |
[윈도우즈 시스템 프로그래밍] 1부 정리 (0) | 2018.08.19 |
[윈도우즈 시스템 프로그래밍] 쓰레드의 상태 컨트롤 (0) | 2018.08.11 |