활동/호기심

메모리 관리 이론 강의 정리 (swap 메모리)

ByeongJun 2024. 8. 9. 00:20
반응형

컴퓨터 시스템에서 데이터를 저장하는 방식은 크게 메모리와 디스크로 나뉜다.

데이터를 저장, 접근, 관리하는 방식이 서로 다르기 때문이다. 

 

메모리 디스크
  • 컴퓨터의 RAM(Random Access Memory)를 의미
  • 데이터를 일시적으로 저장 (전원이 꺼지면 데이터가 사라짐)
  • 데이터 접근 속도가 빠름 (CPU와 직접적인 연결을 통해 빠른 데이터 처리 가능)
  • 프로그램 실행, 임시 데이터 처리에 사용
  • 데이터베이스 쿼리 결과나 사용자 세선 정보 같이 빈번하게 접근되는 데이터에 유용
  • HDD(Hard Disk Drive), SSD(Solid State Drive) 같은 저장 장치
  • 데이터를 영구적으로 저장
  • 데이터 접근 속도가 느림 (물리적인 읽기/쓰기 작업이 필요)
  • 사용자 데이터, 애플리케이션 파일 저장에 사용
  • 대용량 데이터, 변경이 잦지 않은 데이터는 디스크에 저장하여 안정성 확보

 

 

 

커널이 관리하는 메모리

  • 프로세스를 언제, 어디에, 어떻게 적재할 것인지 커널이 관리
  • 리눅스는 하나의 프로세스에 4GB의 가상 메모리 주소 공간을 할당
  • 리눅스는 가상 메모리 공간에 있는 페이지 중 현재 작업 수행에 필요한 부분만 물리 메모리를 올려 작업을 수행
  • 물리 메모리의 공간이 부족해지면 다시 일정 페이지를 가상 메모리 공간으로 보내는 작업을 반복
  • 가상 메모리는 페이지 단위로 관리되며, 리눅스 시스템에서 일반적으로 하나의 페이지 크기는 4KB

 

가상 메모리에 A라는 프로세스가 동작하고 있으면 page 단위로 나누고, 

필요한 부분만 실제 물리 메모리에 올라가서 동작한다. 

 

가상 메모리는 실제 메모리 영역을 사용하기도 하지만

물리 메모리만 사용하는 게 아니라 하드 디스크의 특정 공간도 사용한다. 

 

가상 메모리를 사용하면 주기억장치와 하드 디스크를

동시에 하나의 논리적 메모리로 최상화하여 접근할 수 있다.

OS가 알아서 해줄테니 넌 일단 그냥 쓰기만 해라.

 

 

 

메모리 관리 명령어 

free   (메모리 공간을 확인할 때 사용) 

 

메모리 공간, 사용된 공간, 남아있는 공간, Swap이 표시된다.

실제 메모리가 1G라고 가정했을 때 

프로그램을 여러 개 실행시키는 도중 500MB 메모리 공간이 필요할 때 

남은 메모리 공간은 300MB 밖에 없기 때문에 공간 부족하다. 

 

그럴 때 동작하고 있는 프로그램에서

우선 순위가 낮은 공간을 페이지 단위로 잘라서 

그 공간들을 Swap으로 내린다.

 

Swap이란 실질적으로 프로그램이 돌고 있는 것이 아니라

동작되어야 하는 프로그램이 잠깐 동안 머무는 공간이라고 보면 되겠다.

임시 메모리인 셈이다!

 

 

 

 

 

top   (프로세스 정보와 CPU 정보를 확인)

like 윈도우 작업관리자

 

 

 

 

 

SWAP   (메모리의 여유 공간을 디스크에 확)

swapon 명령어를 사용하면 공간이 어떻게 구성되어있나 확인 가능

 

 

[1] 파티션의 타입을 swap으로 구성해서 통째로 사용하던가

 

[2] 2G짜리 파일을 따로 만들어서 파일 자체를 swap 공간으로 사용하던가 

 

 

 

 

 

참고
https://f-lab.kr/insight/understanding-data-storage

https://youtu.be/rhH_-WffWQA?si=ZValAYedro40fpJX

https://www.youtube.com/watch?v=RWndpAv4hps

 

반응형