TIL 21 | 메모리 관리

Seon Kang choi·2021년 10월 15일
0

메모리 관리

  • 메모리 용량이 증가함에 따라 프로그램의 크기 또한 계속 증가하고 있기에 메모리는 언제나 부족하다.
  • 제한된 물리 메모리의 효율적으로 사용해야 한다.

Swapping
메모리 관리를 위해 사용되는 기법, 다중 프로그래밍 환경에서 CPU 할당 시간이 끝난 프로세스의 메모리를 보조 기억장치로 보내고 다른 프로세스를 메모리로 불러 들인다.

단편화
프로세스들이 메모리에 적재되고 제거되기를 반복하다 보면 프로세스들이 차지하는 메모리에 틈이 생겨 사용하지 못하는 자유공간들이 늘어난다. 이것이 단편화이다.

  • 외부 단편화 : 메모리 공간 중 사용하지 못하는 일부분, 물리 메모리 사이사이 남는 공간들을 모두 합치면 충분한 공간이 되는 부분들이 분산되어 발생한다.
  • 내부 단편화 : 프로세스가 사용하는 메모리 공간에 남는 부분, 메모리에서 할당 받은 공간이 100B이고, 사용하는 공간이 89B를 사용하게 되면 11B 차이가 난다. 이부분을 내부 단편화라 한다.

압축 : 외부 단편화를 해소하기 위해 프로세스가 사용하는 공간들을 한쪽으로 몰아 자유공간을 확보하는 방법론, 하지만 작업 효율이 좋지 않다.

페이징
프로세스가 사용하는 메모리 공간이 연석적이라는 제약을 없앤 메모리 관리 방법이다. 물리 메모리는 Frame이라는 고정 크기로 분할되어 논리 메모리는 페이지라 불리는 고정 크기의 블록으로 분리된다.

페이징 기법으로 인해 물리 메모리에서는 연속되어 저장될 필요가 없고 물리 메모리의 남는 프레임에 적절히 배치됨으로 외부 단편화를 해결할 수 있다.

  • 단점 : 내부 단편화 문제의 비중이 늘어난다. 프로세스의 크기가 3000B이고 페이지의 크기가 1024B이면 3개의 페이지 프레임이 필요하고 72B의 여유공간이 생겨 내부 단편화 문제가 발생한다.

세그멘테이션
페이징 기법과 반대로 논리 메모리와 물리 메모리를 같은 크기가 아닌 서로 다른 크기의 논리적 단위 세그먼트로 분할, 사용자가 두 개의 주소로 지정, 세그먼트 테이블에는 각 세그먼트의 기준(시작 물리 주소)와 세그먼트의 길이를 저장한다.

  • 단점 : 서로 다른 크기의 세그먼트들이 메모리에 적재되고 제거되는 일이 반복되는데 자유 공간들이 많은 수의 작은 조각들로 나누어져 못 쓰게 될 수도 있다.(외부 단편화)
profile
유쾌한 개발 생활~

0개의 댓글