메모리
- 프로그램 수행에 필요한 데이터 및 코드와 같은 정보를 저장하는 장치
- RAM(Random Access Memory): 컴퓨터가 현재 실행중인 프로그램과 데이터를 CPU가 빠르게 접근할 수 있도록 임시로 저장하는 공간으로, 전원이 꺼지면 내용이 사라지는 휘발성 저장소
가상 메모리
- 디스크 공간(SSD나 하드 드라이브)을 RAM의 임시 확장 영역으로 사용하는 운영체제 기술
- 실제 물리적 메모리보다 더 많은 프로그램을 실행하는 것이 가능해짐
- 가상 메모리는 RAM에서 당장 사용하지 않는 데이터를 디스크로 옮기고, 필요할 때 다시 가져오는 방식으로 작동한다.
파편화

외부파편화
- 가용 메모리가 작고 연속되지 않은 블록들로 나뉘어 발생하는 메모리 관리상의 문제
- 비록 새 프로그램을 실행하기에 충분한 전체 가용 메모리가 있을지라도, 메모리가 아주 작은 조각들로 흩어져 있기 때문에 프로그램이 이를 사용할 수 없음
- 외부 파편화의 원인은 연속된 메모리 공간을 요구하기 때문임
- 페이징 기법으로 이를 해결할 수 있음
내부파편화
- 메모리 할당 단위와 실제 데이터 크기의 차이로 인해 발생하는현상
- 페이징 기법에서 메모리를 고정된 크기(페이지)로 할당할 때, 프로그램의 마지막 부분이 페이지 크기보다 작아 할당된 블록 내부에 빈 공간이 생겨도 활용되지 못하고 낭비된다.
- 예를 들어 4KB 페이지 환경에서 4,097바이트의 데이터를 저장할 경우, 두 번째 페이지에는 1바이트만 기록되고 나머지 4,095바이트는 활용되지 못하는 자원 낭비로 이어집니다.
Swap 메모리
- 가상 메모리 기법을 구현하기 위해 사용하는 디스크 공간
- 하드디스크를 이용하기 때문에 속도가 느림
- swap-in: 디스크에 있던 데이터를 RAM으로 가져옴
- swap-out: RAM의 데이터를 디스크로 보냄
리눅스에서의 Swap 메모리
- 리눅스 커널은 메모리에 올라와 있는 블록 중 당장 쓰이지 않는 것을 디스크에 저장하여, 사용 가능한 메모리를 늘린다.
swapon -s또는free -h명령어를 통해 Swap 메모리를 확인할 수 있다.
참고 자료
- https://en.wikipedia.org/wiki/Virtual_memory
- https://jw910911.tistory.com/122
- https://thisisjoos.tistory.com/638
- chatgpt & gemini
문서정보
- 작성자:호준
- 링크:https://korjun1993.github.io/2025/01/23/memory/
- 작성일: 2025-01-23