메모리

허선준·2024년 10월 10일

본캠프

목록 보기
23/25

메모리의 개념과 역할

메모리는 컴퓨터의 핵심적인 구성 요소로, 데이터를 일시적으로 저장하고 처리할 수 있는 공간을 제공합니다. 메모리는 컴퓨터 시스템에서 데이터와 명령어를 저장하고, 이를 CPU(중앙처리장치)가 빠르게 접근하여 처리할 수 있도록 합니다. 컴퓨터에서 실행 중인 프로그램이나 애플리케이션은 데이터를 처리할 때 메모리 공간을 사용하며, 이 공간은 프로세스가 실행되는 동안 매우 중요한 역할을 합니다.

메모리의 기본적인 개념을 이해하려면 메모리를 크게 두 가지로 나눠볼 수 있습니다:

1. 주기억장치(Main Memory)
주기억장치는 보통 RAM(Random Access Memory)을 말하며, 프로그램이 실행될 때 데이터를 임시로 저장하는 공간입니다. RAM은 임시 저장소이기 때문에, 컴퓨터가 꺼지면 그 안에 저장된 데이터는 모두 사라집니다. 주기억장치의 속도는 매우 빠르며, CPU는 여기서 데이터를 즉시 읽고 쓸 수 있습니다.

컴퓨터에서 프로그램이 실행될 때, 프로그램의 명령어와 데이터를 보조기억장치(하드디스크나 SSD)에서 불러와 RAM에 저장한 후, CPU가 이를 처리합니다. 프로그램의 성능은 RAM의 크기와 속도에 따라 크게 달라지며, 충분한 RAM이 있어야 많은 작업을 동시에 처리할 수 있습니다.

2. 보조기억장치(Secondary Memory)
보조기억장치는 하드디스크(HDD), SSD(Solid State Drive) 같은 장기적인 데이터 저장 장치를 말합니다. 보조기억장치는 주기억장치에 비해 읽기/쓰기 속도가 느리지만, 데이터가 전원이 꺼져도 유지된다는 점에서 장점이 있습니다. 보조기억장치는 프로그램 파일이나 개인 문서, 운영체제 파일 등을 장기간 저장하는 데 사용됩니다.

메모리와 보조기억장치는 서로 긴밀하게 연동되어 작동합니다. 프로그램이 실행되면 보조기억장치에서 RAM으로 데이터를 불러와야 하고, RAM이 부족하면 다시 보조기억장치로 일부 데이터를 옮기는 과정(스왑)이 발생합니다.

메모리 주소 공간 (Address Space)

컴퓨터에서 메모리는 단순히 큰 데이터 저장소가 아니라, 주소 공간(Address Space)이라는 개념에 의해 잘 관리되고 있습니다. 주소는 메모리의 특정 위치를 나타내는 값으로, CPU가 데이터를 읽거나 쓸 때 어떤 위치에 접근해야 할지를 나타내는 일종의 "좌표"입니다. 이 주소 공간을 통해 운영체제와 프로그램은 메모리의 각 부분에 접근합니다.

1. 물리 주소 (Physical Address)
물리 주소는 실제 메모리 하드웨어에서 데이터를 저장하는 위치를 가리킵니다. 이는 RAM의 특정 부분을 지칭하는 실질적인 주소입니다. 컴퓨터의 하드웨어는 물리 주소를 기반으로 메모리에서 데이터를 찾고 관리합니다. 물리 주소는 운영체제와 하드웨어가 메모리 할당을 할 때 중요한 역할을 합니다.

예를 들어, 프로그램이 실행되면 운영체제는 물리 주소를 할당하여 해당 프로그램이 필요한 데이터를 RAM의 특정 위치에 저장하고, CPU가 그 위치에서 데이터를 읽습니다. 하지만 이 방식은 모든 프로그램이 직접 물리 주소를 사용하는 경우 서로 간섭이 발생할 수 있어 안전하고 효율적이지 않습니다.

2. 가상 주소 (Virtual Address)
가상 주소는 물리 주소와 달리 프로그램이 실행될 때 운영체제가 제공하는 추상적인 주소 공간입니다. 현대 컴퓨터 시스템에서는 각 프로그램이 독립된 가상 메모리 공간을 갖고 있는 것처럼 보이도록 설계되어 있습니다. 가상 주소는 프로그램이 메모리에 접근할 때 사용되는 주소로, 직접 물리 메모리에 대응하지는 않습니다.

가상 주소를 사용하는 이유는 프로그램이 서로 간섭하지 않고, 물리 메모리의 실제 크기보다 더 큰 메모리를 사용할 수 있는 환경을 제공하기 위함입니다. 운영체제는 메모리 관리 장치(MMU: Memory Management Unit)라는 하드웨어를 통해 가상 주소를 물리 주소로 변환합니다. 이를 통해 각 프로그램은 자신만의 독립된 주소 공간을 사용하는 것처럼 보이지만, 실제로는 물리 메모리의 특정 부분을 사용하고 있는 것입니다.

가상 메모리 시스템

가상 메모리(Virtual Memory) 시스템은 물리 메모리보다 많은 데이터를 다룰 수 있도록 설계된 기법입니다. 컴퓨터의 물리 메모리가 부족할 때, 운영체제는 보조기억장치(하드디스크나 SSD)에 있는 데이터를 임시로 가상 메모리 영역에 저장합니다. 이 과정을 스와핑(Swapping)이라고 하며, 프로그램이 필요할 때 데이터를 다시 메모리로 불러옵니다.

가상 메모리 덕분에 컴퓨터는 물리 메모리보다 더 많은 프로그램을 동시에 실행할 수 있습니다. 예를 들어, 사용자가 여러 개의 프로그램을 동시에 실행할 때, 각 프로그램은 자신의 가상 메모리 공간을 가지고 있으며, 운영체제는 이 가상 메모리 공간을 물리 메모리와 보조기억장치 사이에서 적절히 관리합니다.

메모리 관리의 중요성

현대의 운영체제는 다양한 프로그램이 동시에 실행될 때, 각 프로그램이 필요한 메모리를 안전하고 효율적으로 관리해야 합니다. 이를 위해 운영체제는 다양한 메모리 관리 기법을 사용합니다. 가상 메모리와 페이지 교체 알고리즘(page replacement algorithm) 등이 그 예입니다.

메모리 관리의 목표
1. 보호(Protection): 각 프로그램이 다른 프로그램의 메모리 영역을 침범하지 못하게 보호합니다.
2. 효율성(Efficiency): 메모리를 효율적으로 할당하여, 시스템 성능을 극대화하고 메모리 낭비를 최소화합니다.
3. 확장성(Scalability): 시스템이 제한된 물리 메모리를 사용하더라도, 더 많은 작업을 처리할 수 있게 합니다.

결론

메모리는 컴퓨터 시스템에서 중요한 역할을 하며, 프로그램의 성능과 시스템 안정성에 큰 영향을 미칩니다. 주기억장치(RAM)는 CPU가 즉시 데이터를 처리하는 공간을 제공하고, 보조기억장치(SSD, HDD)는 데이터를 장기적으로 저장합니다. 주소 공간은 메모리를 효과적으로 관리하고, 가상 메모리는 물리 메모리의 한계를 극복하는 중요한 기법입니다.

profile
코딩 초보

0개의 댓글