메모리에 저장된 각각의 비트들을 접근하는 방식 대신에 대부분의 컴퓨터들은 메모리에서 주소지정이 가능한 최소단위인
8비트단위의 블록 바이트를 사용한다.
주소라고 한다.모든 가능한 주소들의 집합을 가상 주소공간이라고 부른다. 가상 주소공간은 기계수준 프로그램에게 제공되는 개념적인 이미지에 불과하다.
하드웨어를 프로그래머에게 사용하기 쉬운 추상화 형태로 제공하는데, 가상 주소공간이 바로 이러한 추상화의 대표적인 예다.
하지만 실제 컴퓨터 시스템의 저장 장치는 단순히 하나의 균일한 바이트 배열이 아니다. 프로세서 레지스터, L1/L2/L3 캐시, 메인 메모리(DRAM), 디스크(SSD/HDD), 심지어 네트워크를 통한 원격 저장소 등 다양한 종류의 저장 장치들이 계층 구조를 이룬다. 이러한 저장 장치들은 접근 속도와 용량, 비용 면에서 큰 차이를 보인다.
메인 메모리는 디스크보다 훨씬 빠르지만 용량이 적고, 캐시는 메인 메모리보다 훨씬 빠르지만 용량이 극히 적다. 데이터가 물리적으로 어디에 저장되어 있는지, 메모리가 파편화되어 있는지 등 실제 물리적인 상태는 매우 복잡하다.
운영체제는 가상 주소를 물리 주소로 변환하는 작업을 하드웨어와 협력하여 수행한다.
비트, 바이트, 워드라는 맥락에서 볼 때, 정보의 가장 작은 단위인 비트가 모여 바이트가 되고, 바이트가 정보 접근의 기본 단위가 된다. 그리고 여러 바이트가 모여 워드와 같은 더 큰 데이터 타입을 구성한다.
데이터들은 실제로 DRAM, 디스크 등 물리적으로 다른 위치에, 그리고 비연속적으로 저장될 수 있다. 그러나 운영체제와 하드웨어가 함께 제공하는 가상 주소공간이라는 추상화 덕분에 프로그램은 이러한 복잡성을 인지할 필요 없이 마치 모든 데이터가 하나의 크고 균일하며 주소가 연속적인 바이트 배열(가상 주소공간)에 저장되어 있는 것처럼 쉽게 접근하고 처리할 수 있게 되는 것이다.
재밌는거 하시네요!