메모리와 주소공간이란?

2024. 10. 17. 10:30[Node.js_6기] 스탠다드반

1. 메모리(Memory)란?

기억장치라는 뜻을 가진 메모리는 상황에 따라 여러가지를 의미하지만, 가장 좁은 의미로는 주기억장치(main memory)를 말한다. 이 주기억장치, 메모리는 컴퓨터에서 특정 작업을 처리할 때, 처리 대상의 내용이나 처리 결과 등을 잠시 기억해야 할 때, 전기적인 신호로 일시적으로 저장하게 된다. 전기 신호를 사용하는 만큼 하드디스크를 이용하는 것보다 훨씬 속도가 빠른 특징을 가진다.

 

우리가 흔히 아는 RAM(Random Access Memory)가 바로 주기억장치이다. 사무직 직원이 업무 진행을 위해 조사한 자료들을 책상에 펼쳐놓고, 필요한 자료들을 하나씩 확인하여 일을 하게 된다고 할 때, 자료들을 펼쳐놓은 책상이 바로 메모리라고 할 수 있다.

 

물론 실제 컴퓨터에는 가장 좁은 의미의 메모리인 주기억장치 외에도, 다양한 메모리가 존재한다. 각 메모리들을 간단히 정리하자면 하기와 같다.

 

  • 레지스터(Register): CPU 내부에 위치한 가장 빠른 메모리이다. 용량은 매우 작지만, 속도가 가장 빠르다는 특징을 가지고 있다. 연산에 직접 사용되는 데이터와 명령어들이 저장된다.
  • 캐시(Cache): CPU와 주기억장치 사이에 위치한 메모리이다. 레지스터와 주기억장치의 속도 차이가 크기 때문에, 중간 단계에 해당하는 메모리, 캐시를 사용한다. L1, L2, L3의 계층으로 구분되어 있다. 자주 사용되는 데이터가 주로 이 캐시에 저장된다.
  • 주기억장치(Main memory): 흔히 아는 RAM이 주기억장치에 해당된다. 현재 실행 중인 프로그램에 관한 데이터들이 저장된다.
  • 보조기억장치(Secondary Memory): HDD, SSD가 보조기억장치에 해당된다. 전원공급이 중단되면 데이터가 휘발되는 앞선 메모리들과는 달리, 데이터들을 장기간 저장해야 할 때 사용된다. 운영체제나 게임 데이터 같은 파일들이 이곳에 저장된다.

 

 

2. 주소 공간(Address Space)란?

컴퓨터에서 프로세스나 프로그램 등이 접근할 수 있는 모든 메모리 주소의 집합을 주소 공간이라고 한다. 물리적 주소 공간과 가상 주소 공간으로 분류되며, 서로 매핑되어 각자 역할을 수행한다.

 

  • 물리적 주소 공간 (Physical Address Space): 하드웨어(RAM)를 통해 제공되는 실제 메모리 주소의 범위이다. CPU가 메모리에 접근할 때 사용되며, 전체 시스템에서 이를 공유하게 된다. 시스템에 설치된 물리 메모리의 용량에 제한된다는 특징을 가지고 있다.
  • 가상 주소 공간(Virtual Address Space): 각 프로세스마다 독립적으로 할당되는 가상의 주소 공간이다. 운영체제는 프로세스에게 연속된 가상 주소 공간을 제공하고, 이를 필요한 크기의 물리 메모리 페이지로 매핑하여 메모리 공간의 낭비를 최소화한다. RAM이 아닌 레지스터의 크기에 종속적이라는 특징이 있다.

이미지 출처: https://en.wikipedia.org/wiki/Address_space

 

 

 

 

 

 

참고자료:

https://trts1004.tistory.com/12109160

https://dodo-studying.tistory.com/407

https://u-bvm.tistory.com/158