728x90

https://valuefactory.tistory.com/726


2진수는 1비트

8진수는 3비트

16진수는 4비트 로 데이터를 표기한다.

 

32비트는 2진수 32자리, 16진수로는 8자리로 표기하고,

64비트는 2진수 64자리, 16진수로는 16자리로 표기한다.


메모리 주소공간은 1byte 크기로 숫자를 매겨서(주소라고함) 관리한다.

주소 데이터의 크기는 운영체제의 기본 처리 단위와 일치한다.

32bit 구조에서는 32bit의 데이터를 주소로 구분지어 관리한다는 것이다.

32bit 환경에서는 2^32의 크기(4GB)로 한정돼있고, 64bit는 2^64(8GB)의 크기를 가지고 있다.


32bit 운영체제는 한 번의 신호를 통해 32bit의 데이터를 전송할 수 있고

64bit 운영체제는 한 번의 신호를 통해 64bit의 데이터를 전송할 수 있는 것이다.

여기서 말하는 데이터는 두가지를 뜻하는데

1. 실제 데이터

2. 명령어(기계어)를 뜻한다.


더 정확히 보면, 명령어도 데이터로 이루어져있긴하다.

예를들어, 00101 이라는 신호를 보내면, 데이터를 더한다. 라는것처럼

결국에 명령을 보내려면 신호를 보내, 데이터를 전송해야 하는 것이다.

그리고 위에서 언급한 신호들은 버스를 통해 이동한다. (CPU <-> RAM)


32bit의 명령어 집합은 IA32 (Intel Architecture 32)

64bit의 명령어 집합은 amd64이다.

 

cpu의 bit에따라 명령어 집합이 구분되듯이 운영체제 또한 이를 구분한다.

즉, 해당 컴퓨터구조(32bit, 64bit)에 맞는 운영체제가 있고

이에 해당하는 프로그램을 실행 시키도록 호환되어있다.

 

하지만 64bit 운영체제에서 32bit의 프로그램을 실행할 수 없는 것은 아니다.

64bit 운영체제에서 32bit 프로그램을 이용할 수 있도록 하는 방법은

운영체제 내부에서 32bit 프로그램을 64bit 명령어로 치환한 후에

cpu에 처리하도록 한다.

728x90
복사했습니다!