TIL - 컴퓨터 시스템 - 정보의 저장

김수인·2025년 5월 23일

크래프톤 정글

목록 보기
11/17
post-thumbnail

정보의 저장

메모리에 저장된 각각의 비트들을 접근하는 방식 대신에 대부분의 컴퓨터들은 메모리에서 주소지정이 가능한 최소단위인 8비트 단위의 블록 바이트를 사용한다.

  • 기계수준의 프로그램은 메모리를 가상메모리라고 하는 거대한 바이트의 배열로 취급한다.
  • 메모리의 각 바이트는 고유한 숫자로 식별할 수 있고 주소라고 한다.

가상 주소공간

모든 가능한 주소들의 집합을 가상 주소공간이라고 부른다. 가상 주소공간은 기계수준 프로그램에게 제공되는 개념적인 이미지에 불과하다.

하드웨어를 프로그래머에게 사용하기 쉬운 추상화 형태로 제공하는데, 가상 주소공간이 바로 이러한 추상화의 대표적인 예다.

정보의 기본 저장 단위 (바이트)

  • 컴퓨터 시스템은 정보를 비트들의 집합으로 표현한다.
  • 대부분의 컴퓨터는 개별 비트가 아닌 8개의 비트 묶음인 바이트(byte) 단위로 정보를 다룬다.
  • 메모리 시스템은 거대한 바이트 배열 처럼 생각할 수 있다.
  • 각 바이트는 고유한 주소를 가진다.
  • 프로그램의 코드나 데이터는 모두 이러한 바이트 단위로 메모리에 저장되고 접근된다.

실제 하드웨어의 복잡성

하지만 실제 컴퓨터 시스템의 저장 장치는 단순히 하나의 균일한 바이트 배열이 아니다. 프로세서 레지스터, L1/L2/L3 캐시, 메인 메모리(DRAM), 디스크(SSD/HDD), 심지어 네트워크를 통한 원격 저장소 등 다양한 종류의 저장 장치들이 계층 구조를 이룬다. 이러한 저장 장치들은 접근 속도와 용량, 비용 면에서 큰 차이를 보인다.
메인 메모리는 디스크보다 훨씬 빠르지만 용량이 적고, 캐시는 메인 메모리보다 훨씬 빠르지만 용량이 극히 적다. 데이터가 물리적으로 어디에 저장되어 있는지, 메모리가 파편화되어 있는지 등 실제 물리적인 상태는 매우 복잡하다.

가상 주소공간과 운영체제의 역할

  • 복잡한 물리적 저장 장치들의 계층 구조와 실제 데이터가 저장된 위치를 관리한다.
  • 각 프로그램에게 모든 데이터가 하나의 연속적이고 균일한 바이트 배열에 저장되어 있는 것처럼 보이게 하는 '환상'을 제공한다.
    • 프로그램에 균일한 바이트 배열인 것처럼 보이도록 해준다는 의미

추상화의 작동 원리

운영체제는 가상 주소를 물리 주소로 변환하는 작업을 하드웨어와 협력하여 수행한다.

  • 프로그램은 가상 주소만을 사용하여 메모리에 접근한다.
  • 운영체제는 필요에 따라 디스크와 메인 메모리 사이에서 데이터를 이동시키거나, 캐시 메모리에 데이터를 올려놓는 등의 작업을 백그라운드에서 처리한다.
  • 이러한 복잡한 과정들은 프로그래머에게 감추어져 있다.

결론

비트, 바이트, 워드라는 맥락에서 볼 때, 정보의 가장 작은 단위인 비트가 모여 바이트가 되고, 바이트가 정보 접근의 기본 단위가 된다. 그리고 여러 바이트가 모여 워드와 같은 더 큰 데이터 타입을 구성한다.

데이터들은 실제로 DRAM, 디스크 등 물리적으로 다른 위치에, 그리고 비연속적으로 저장될 수 있다. 그러나 운영체제와 하드웨어가 함께 제공하는 가상 주소공간이라는 추상화 덕분에 프로그램은 이러한 복잡성을 인지할 필요 없이 마치 모든 데이터가 하나의 크고 균일하며 주소가 연속적인 바이트 배열(가상 주소공간)에 저장되어 있는 것처럼 쉽게 접근하고 처리할 수 있게 되는 것이다.

profile
헤맨 만큼 내 땅이다

2개의 댓글

comment-user-thumbnail
2025년 5월 23일

재밌는거 하시네요!

1개의 답글