페이징

김태희·2021년 1월 11일
0
post-custom-banner

외부 단편화 발생 원인 : 프로세스의 메모리 크기는 모두 다르다. 한 프로세스에 할당되는 메모리는 연속적이어야 한다. 이 조건들 때문에 발생하는 메모리의 빈 공간의 크기들도 모두 다르다. 이것이 외부 단편화의 발생 원인이다.

이를 해결하기 위해,

Logical memory(프로세스의 메모리)를 동일한 크기로 자른다. 잘라진 한 조각조각을 Page라고 부른다.

Physical memory(실제 메모리)도 Logical memory와 동일한 크기로 자른다. 잘라진 한 조각조각을 Frame이라고 부른다.

각 Page를 각 Frame에 매핑하여 할당한다.

이렇게 되면, 하나의 프로세스를 굳이 연속적인 메모리에 할당할 필요가 없다. 빈 공간이 발생하지 않아 외부단편화가 발생하지 않는다.


내부 단편화


Logical memory(프로세스의 메모리)를 동일한 크기의 블록(Page)로 자른다. 하지만, 모든 프로세스가 Page의 크기로 딱 나누어 떨어질 수 없다.

예를 들어, 프로세스의 메모리가 총 11MB인데, Page의 크기가 2MB라면, Page는 해당 프로세스를 실행시키기 위해서 6개(12MB)가 만들어져야 한다.

실제 프로세스의 총 메모리는 11MB이지만, 만들어진 Page들의 총 크기는 12MB인 것이다. 즉, 한 Page 내부에 1MB의 빈 공간이 있고, 이는 메모리 낭비가 된다.

이를 내부 단편화라고 한다.

하지만 외부 단편화에 비해 훨씬 적은 메모리를 낭비하기 때문에, 비교적 매우 효율적이다.


참조
https://jhnyang.tistory.com/290

profile
Web Back-End (Spring, JPA, AWS)
post-custom-banner

0개의 댓글