IT솔루션 by 올파

32비트 , 64비트 시스템의 차이 본문

IT Infra/System

32비트 , 64비트 시스템의 차이

올파트너 2016. 12. 3. 21:52

문뜩일을 하다가 32비트, 64비트 소프트웨어를 구분해서 설치하거나, 트러블슈팅할떄가 있습니다.

하지만 엔지니어들도 32비트, 64비트의 구현의 차이를 정확하게 이해하고있는 사람들은 많지 않습니다.

저도 막히는 부분이 있기때문에 한번더 짚어 주고 넘어가려고합니다.   언제나 그렇지만 이 블로그의 목적인, 개인적인 공부를 좀더 정확하게 하기 위함입니다. ^^

 

보통 일반적인으로는  32비트는 4GByte까지 메모리 사용을 가능하게 하고, 64비트 시스템은 그이상을 사용하게 하는정도로 알고있습니다.  그 사용이라는 부분을 이해할때, 메모리공간 주소에 할당하는 영역이 늘어난다라고 이해하고있는 것은 단순히 메모리카드를 더 낄수있다라고 알고있는것과는 엄청난 차이일것 입니다.

그부분에 대해서 설명하려고합니다.

 

 

 

1. 시스템 비트수 차이가 발생하는 원인

 

  - 현재의 시스템들은 예전 컴퓨터의 개발단계를 보면 8비트, 16비트 시스템에서 부터 발전되어진 것을 볼수있습니다.  비트수의 차이는 CPU가 특정 연산작업를 처리하기위해서는 해당 데이터들을 계산하거나 처리할수있는 메모리공간에 할당하게 되는데 그 메모리주소의 공간에서 2의 N승만큼 Byte계산되어져서 사용할수 있음으로  16비트시스템은 64K,   32비트 시스템은 4G,  64비트 시스템은 16777216TB 만큼 사용이 가능합니다.

 

   -> 더 많은 메모리 주소에 연산단위들(Process)을 적재시킬수있기때문에 단순히 보면 많은 메모리를 갖고있다는것은 더 많은 작업 또는 큰 메모리를 사용해야하는 큰 작업을 할수있수있다라는 것을 의미합니다

 

 

 

2. 64비트 언제부터 사용이 가능했나?

 

 시스템에서 설계로직이 변하게되려면 CPU에서 연산되는 단위를 변경해야하고, OS에서 그부분에 대한 어플리케이션들의 안정성이 마련되었을때야 가능합니다.

 

 예를 들어서 인텔에서 IA64 CPU를 개발한것은 2004년이지만 이를 상용화한것은 조금더 뒤의 일입니다. 다른 CPU를 개발하는 AMD에서 먼저 개발이 끝나있었고, 실제 PC시스템서는 AMD가 판매를 먼저하였습니다.

 

Server용시스템에서 Windows OS에서 가장먼저 나온버전은 Windows 2000이었는데 그때당시에서보면 엄청 획기적이고 좋은 OS였지만 그당시는 UNIX에 안정성이 상당히 밀릴정도로 64비트 개발시스템은 초기에 머물렀습니다. 그뒤에 Client에 시스템에서 안정성을 이룬버전은 Windows 7 64비트가 아닐까싶습니다.

물론 Windows Server에서는 2003부터 빠르게 안정화되어갔다고 생각합니다.

 

사용자들의 환경에서는 MS의 노력? 으로 32비트또는 64비트 Application의 안정적인 구동을 가능하게 하였고, 일반사용자로 하여금 4GByte이상의 메모리를 사용하고 싶게 만들었던것 같습니다.

 

 

3. 비트수를 구분해서 Application을 개발하는것이 필요한가

 

- 기본적으로 32비트의 메모리 주소공간만으로 충분히 활용이가능하다면 기존과 같은 방식으로 32Bit로 개발을 하면됩니다. 하지만 64Bit에 최적화된 많은 메모리를 필요로하는 프로그램이라면 달라집니다. 정확한 메모리할당, 회수 알고리즘을 사용해야합니다.  그렇지않으면 32비트 시스템에서도 많이 발생하는 Ouf of memory 오류들을 많이 볼수있을것입니다.  이전 시스템에서 많이 발생하던 BlueScreen 이 발생할수밖에 없습니다.

 

유저메모리 , 커널메모리의 차이등에 대해서 블루스크린이 발생하는것은 커널메모리에서 발생하는 부분에 대한 깊은 얘기들은 다음에 따로 다뤄보도록 하겠습니다.

 

 

 

%간혹, 64비트 Application이지만 Windows에  Program(x86)에 설치되었다고 의아해하는데; 프로그램이 설치되는 경로는 프로그램 개발소스상에 들어가는 부분으로 실제 32비트 구동인지 64비트 구동인지는 안에들어가는 라이브러리들을 참조해야 알수 있습니다. 작업관리자에서 *32로 구분되어서 올라오기도합니다. 현재 64비트 OS에서 32비트용 프로그램들을 완벽히 호환하기 때문에 전혀문제는 되지않습니다. 

 



 

'IT Infra > System' 카테고리의 다른 글

How to make the OS X on Vmware, Hakintosh for Yosemite  (0) 2015.05.07
AD 용어 정리, 개념  (0) 2014.02.02
클러스터란 , 서버클러스터 정의하기  (3) 2013.12.15
Hadoop 이란  (0) 2013.09.09
TFTPD32 소개  (0) 2013.07.30
Comments