메모리란

2025/01/23 cs 전체 901 단어,약 3 분

메모리


  • 프로그램 수행에 필요한 데이터 및 코드와 같은 정보를 저장하는 장치
  • RAM(Random Access Memory): 컴퓨터가 현재 실행중인 프로그램과 데이터를 CPU가 빠르게 접근할 수 있도록 임시로 저장하는 공간으로, 전원이 꺼지면 내용이 사라지는 휘발성 저장소

가상 메모리


  • 디스크 공간(SSD나 하드 드라이브)을 RAM의 임시 확장 영역으로 사용하는 운영체제 기술
  • 실제 물리적 메모리보다 더 많은 프로그램을 실행하는 것이 가능해짐
  • 가상 메모리는 RAM에서 당장 사용하지 않는 데이터를 디스크로 옮기고, 필요할 때 다시 가져오는 방식으로 작동한다.

파편화

fragmentation

외부파편화

  • 가용 메모리가 작고 연속되지 않은 블록들로 나뉘어 발생하는 메모리 관리상의 문제
  • 비록 새 프로그램을 실행하기에 충분한 전체 가용 메모리가 있을지라도, 메모리가 아주 작은 조각들로 흩어져 있기 때문에 프로그램이 이를 사용할 수 없음
  • 외부 파편화의 원인은 연속된 메모리 공간을 요구하기 때문임
  • 페이징 기법으로 이를 해결할 수 있음

내부파편화

  • 메모리 할당 단위와 실제 데이터 크기의 차이로 인해 발생하는현상
  • 페이징 기법에서 메모리를 고정된 크기(페이지)로 할당할 때, 프로그램의 마지막 부분이 페이지 크기보다 작아 할당된 블록 내부에 빈 공간이 생겨도 활용되지 못하고 낭비된다.
  • 예를 들어 4KB 페이지 환경에서 4,097바이트의 데이터를 저장할 경우, 두 번째 페이지에는 1바이트만 기록되고 나머지 4,095바이트는 활용되지 못하는 자원 낭비로 이어집니다.

Swap 메모리


  • 가상 메모리 기법을 구현하기 위해 사용하는 디스크 공간
  • 하드디스크를 이용하기 때문에 속도가 느림
    • swap-in: 디스크에 있던 데이터를 RAM으로 가져옴
    • swap-out: RAM의 데이터를 디스크로 보냄

리눅스에서의 Swap 메모리


  • 리눅스 커널은 메모리에 올라와 있는 블록 중 당장 쓰이지 않는 것을 디스크에 저장하여, 사용 가능한 메모리를 늘린다.
  • swapon -s 또는 free -h 명령어를 통해 Swap 메모리를 확인할 수 있다.

참고 자료


문서정보