가상 메모리
기술노트
☁️ 가상 메모리 (Virtual Memory)
가상 메모리는 운영체제(OS)가 실제 물리 메모리(RAM)의 용량 한계를 극복하기 위해, 하드 디스크의 일부 공간을 마치 주 기억 장치(RAM)처럼 사용하는 기술입니다. 이를 통해 실제 메모리보다 큰 프로그램을 실행하거나, 더 많은 프로그램을 동시에 실행할 수 있게 됩니다.
사용자는 실제 메모리의 크기에 구애받지 않고, 무한한 메모리 공간을 사용하는 것처럼 느끼게 됩니다.
🤔 가상 메모리는 왜 필요한가?
- 메모리 용량 확장 : 실제 RAM 용량이 부족하더라도, 하드 디스크의 여유 공간을 활용하여 더 큰 프로그램을 실행할 수 있습니다.
- 다중 프로그래밍 효율 증대 : 여러 프로세스가 동시에 실행될 때, 모든 프로세스를 RAM에 올리지 않고 필요한 부분만 올려서 메모리 사용 효율을 높입니다.
- 메모리 보호 : 각 프로세스는 자신만의 가상 주소 공간을 가지므로, 다른 프로세스의 메모리 영역을 침범할 수 없습니다.
- 프로그램 공유 용이 : 여러 프로세스가 동일한 코드나 라이브러리를 공유할 때, 물리 메모리에는 한 번만 적재하고 각 프로세스의 가상 주소 공간에 매핑하여 메모리를 절약합니다.
⚙️ 가상 메모리의 동작 방식
가상 메모리는 주로 페이징(Paging) 기법을 기반으로 구현됩니다.
1. 프로세스는 가상 주소 공간을 가집니다. 이 가상 주소 공간은 고정된 크기의 페이지(Page)들로 나뉩니다. 2. 운영체제는 이 페이지들을 물리 메모리(RAM)의 프레임(Frame)에 할당하거나, 필요에 따라 하드 디스크의 스와프 영역(Swap Area / Page File)에 저장합니다. 3. CPU가 가상 주소를 요청하면, MMU(Memory Management Unit)라는 하드웨어 장치가 페이지 테이블(Page Table)을 참조하여 해당 가상 주소를 물리 주소로 변환합니다. 4. 만약 요청된 페이지가 현재 물리 메모리에 없다면, 페이지 부재(Page Fault)가 발생하고, 운영체제는 해당 페이지를 스와프 영역에서 물리 메모리로 가져옵니다.
💡 정보처리기사 핵심 Point
- 가상 메모리는 실제 메모리보다 큰 프로그램을 실행할 수 있도록 하는 메모리 관리의 핵심 기술입니다.
- 정보처리기사 시험에서는 가상 메모리의 개념, 장점, 그리고 페이지 부재(Page Fault)의 발생 과정을 묻는 문제가 자주 출제됩니다.
- 페이지 교체 알고리즘(FIFO, LRU, LFU 등)은 페이지 부재 발생 시, 어떤 페이지를 스와프 영역으로 내보낼지 결정하는 중요한 알고리즘입니다.