ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] 32 / 64 bit CPU와 운영체제
    Study/OS 2020. 4. 19. 17:32

    컴퓨터의 워드 사이즈 (Word size)

     

    워드사이즈의 개념을 알면 64/32 비트 CPU나 OS에 대한 개념을 이해하기 쉽다.

     

    워드를 직역하면 단어이다.

     

    컴퓨팅에서 워드라는 단어는 컴퓨터에서 데이터를 처리하는 기본 단위라고 되어있는데, 그대로 받아들이면 된다.

     

    32비트, 64비트 하는 것은 워드 사이즈를 말하는 것이다.

     

    32비트 머신(CPU)라면 그 머신의 기본 데이터 처리 단위는 32비트가 되고, 64비트 머신이면 그 머신의 기본 데이터 처리 단위는 64비트가 되는 것이다.

     

    비트는 정보 처리의 단위니까, 당연히 64비트 머신은 32비트 머신 보다 한 번에 처리할 수 있는 데이터의 크기가 2배가 된다.

     

     

    가능한 CPU와 운영체제 조합

    32비트 64비트가 CPU에도 있고 OS에도 있다.

     

    이분법적으로 나누어 생각해보면, 컴퓨터 시스템은 하드웨어와 소프트웨어가 있다.

     

    CPU는 하드웨어가 될 것이고, OS는 소프트웨어가 된다.

     

    그리고 CPU에 32/64비트가 있고, OS에도 32/64비트가 있다. 각자 HW/SW 이므로 총 4가지 조합이 있을 수 있겠다.

     

    CPU OS 가능여부 동작 모드
    32bit 32bit O 32bit
    32bit 64bit X X
    64bit 32bit O 32bit (하위호환)
    64bit 64bit O 64bit

     

     

    32bit CPU에는 64bit OS를 설치할 수 없다. 대신에 32bit OS를 설치할 수 있고 32bit 모드로 동작한다.

     

    64bit CPU에는 32/64bit OS를 둘 다 설치할 수 있는데, 다만 32bit OS를 설치하면 32bit 모드로 동작하게 된다. 64평짜리 집을 사 놓고, 32평만 사용하는 격이다.

     

    다만 가능은 하다(호환된다)고 보면 된다.

     

    이렇게 나중에 나온 더 신식인 64bit CPU가 이전에 나온 구식인 32bit CPU를 사용할 수 있게 해주는 것을 하위 호환성(backward compatibility)이라고 한다.

     

     

    32비트 시스템 vs 64비트 시스템

     

    32비트 시스템과 64비트 시스템의 차이에 대해 살펴보자.

     

    메모리 주소 공간 크기의 차이(Memory addressing space size)

     

    일단 기본 처리 단위가 다르다보니, 프로세서의 레지스터의 크기부터 차이가 난다. 32비트 프로세스의 범용 레지스터의 크기는 32비트 즉 4바이트이고, 64비트 프로세서의 범용 레지스터의 크기는 64비트, 즉 8바이트이다.

     

    이렇다 보니, 프로그램 카운터(Program Counter Register)의 크기도 각각 4바이트 8바이트가 된다(PC 또한 CPU 내부 레지스터임).

     

    메모리의 주소 모드(address mode)는 기본적으로 메인 메모리의 바이트 크기 당 주소를 하나 할당하는 방식(byte oriented addressing)이므로, 32비트 머신은 최대 32bit의 메모리 어드레싱이 가능하다.

     

    실행가능한 어플리케이션 종류

    CPU와 OS의 예를들어 운용 가능한 조합과 동작되는 모드가 달라지는 것 처럼 실행되는 어플리케이션(응용 프로그램)에서도 구분된다.

     

    CPU 응용 프로그램 가능 여부 동작 모드
    32bit 32bit O 32bit
    32bit 64bit X X
    64bit 32bit O 32bit (하위호환)
    64bit 64bit O 64bit

     

    32bit 컴퓨터 시스템에서는 64bit 응용 프로그램을 구동할 수 없다.

     

    하지만 64bit 시스템에서는 32bit/64bit 응용 프로그램 구동이 가능하다.

     

    32bit OS 처럼 32bit 프로그램을 실행할 수 있도록 하위 호환성이 유지되고 있는 것이다.

     

    다만 32bit 앱을 구동하기 위해서는 32bit 앱에 맞는 라이브러리를 별도로 설치해야 하는 경우도 있다.

     

     

     

    참고 자료

    - https://eine.tistory.com/entry/64%EB%B9%84%ED%8A%B8-32%EB%B9%84%ED%8A%B8-CPU%EC%99%80-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC

    댓글

Designed by Tistory.