CS

주기억장치 메모리 RAM

kark 2024. 6. 22. 22:42
728x90

Random Access Memory

RAM 이란 데이터를 기록할 수 있는 임시 기억장치로 디스크파일에 자료를 저장하거나 읽을 때

찾는 자료가 있는 위치를 순차적으로 찾아가지 않고 어느 특정위치에 직접 자료를 검색하고 저장하는 법을 의미한다.

 

램은 CPU를 돕는 보조기사의 역할로 보면 되겠다.

만약 특정 프로그램을 실행시키게 되면 해당 프로그램의 데이터와 명령어들을 일시적으로 저장해 두었다가

CPU의 요청으로 필요한 작업을 빠르게 도와주는 역할이라 생각하면 되겠다.

 

이때 데이터를 접근하는 방식도 알아둘 필요가 있다.

램의 데이터를 담아두는 구조는 아파트처럼 수직구조로 형태가 이루어져 있다고 보며,

CPU에서 3층의 작업이 필요하다고 할때 1,2,3 층 순으로 접근하는게 아닌

바로 3층으로 접근하여 빠르게 데이터를 접근하는 방식이다.

 

그렇기에 Random(무작위 의미가 아닌 닥치는대로) 이라는 키워드를 접목 시키게 되었다.

 

어떻게 특정 위치를 바로 찾아갈수 있을까?

CPU는 특정 데이터를 읽거나 쓰기위해 메모리 공간의 주소를 지정하게 된다.

즉, 각 층마다 다른 주소를 갖게 되는 상황이라고 보면 되겠다.

그러므로 CPU에서 필요한 데이터를 찾게 될때 이 주소를 참고하여 시스템버스(주소 버스)를 활용하여 해당 메모리로 빠르게 접근이 가능하다.

 

주소?

RAM의 주소는 이진수 형태로 지정되며, 메모리 셀의 위치를 나타내는 고유한 식별자로 사용되며

CPU는 이 주소를 활용해 메모리의 데이터를 읽거나 쓸수 있게된다.

 

메모리의 이진수 주소는 32비트 운영체제 가정하에

0x00000000로 첫번째 메모리 셀을, 0xFFFFFFFF로 마지막 메모리셀을 가리키는 주소가 된다.

64비트 운영체제의 경우 0x0000000000000000 와 같이 32비트보다 더 많은 주소 공간을 갖게된다.

 

해당 메모리 주소를 갖는다 하더라도 알아서 실체 램의 공간에 자동으로 할당되지 않는다.

위처럼 이진수로 구성된 주소는 가상주소로 소프트웨어적인 측면에서의 주소를 의미한다.

실제 하드웨어 램의 물리적 주소가 별도로 필요하며 물리적 주소는 램의 물리적 공간을 가리키는 주소가 된다.

 

실제 하드웨어 램의 물리적 주소와 가상 주소를 매핑하는 페이지 테이블을 통해 전체적인 주소 시스템을 사용하게 된다.

 

일시적인 데이터 저장공간이라 했는데, 원본 데이터는?

원본 데이터는 보조기억장치인 SSD,HDD,CD,USB 같은 저장매체에 보관되어있다.

어떠한 프로그램을 설치하게 될때 RAM이라는 메모리공간이 아닌

C드라이브에 프로그램을 설치하게 되고, 해당 프로그램을 실행시키고 싶다면

해당 프로그램의 exe파일을 실행시킬것이다.

 

그렇다면 RAM의 역할은 이때부터 시작되게 된다.

프로그램을 실행시키게 되면 이 프로세스의 공간에 프로그램이 등록될것이다.

이 프로세스 공간은 RAM의 공간이라고 보면되겠다.

 

특정 프로그램을 실행시키게 되면 해당 프로그램의 데이터, 명령어를 싹 긁어와 RAM의 각 층에 저장해둔다고 보면되며,

사용자가 해당 프로그램의 A 작업을 요청하게 될때

CPU는 A 작업에 필요한 데이터, 명령어를 처리하기 위해 RAM에 저장된 각 주소들을 확인하는 과정을 거쳐

해당 업무를 완수하게 된다.

 

일시적이라 하면 언제부터 언제까지?

위의 프로세스가 등록되는 시점부터 프로세스가 종료되는 시점까지를 의미한다.

 

- 프로세스가 등록되는 시점

프로그램이 실행될때 운영체제쪽에서는 이 작업을 확인하고 메모리 공간을 할당시켜준다.

필요한 메모리 공간은 코드영역,데이터영역,힙,스택의 공간을 할당시켜준다.

 

- 프로세스가 동작되는 시점

프로세스가 활성 상태인 동안 CPU는 RAM에 저장된 명령어, 데이터를 활용해 사용자의 요청을 수행한다.

워드같은 사용자에게 입력받은 데이터들은 이때 RAM에 일시적으로 저장된다.

입력중이던 내용을 사용자의 요청에 의해 영구적인 저장을 하게 될경우 데이터버스를 활용해 보조기억장치에 해당 데이터를 저장하게 된다.

 

- 프로세스가 종료되는 시점

프로그램이 종료되면 프로세스가 종료하며 사용중이던 공간을 해제하게 된다.

'CS' 카테고리의 다른 글

bit 비트란  (0) 2024.06.28
데이터 - 0과 1로 문자를 표기하는 방법  (0) 2024.06.26
데이터 - 0과 1로 숫자를 표기하는 방법  (1) 2024.06.24
시스템 버스  (0) 2024.06.23
컴퓨터의 구조  (0) 2024.06.22