Search

Paging과 Segmentation

생성일
2023/06/16 00:23
태그

단편화(Fragmentation)

내부 단편화
할당된 메모리 공간 내부에 사용되지 않는 메모리가 존재하는 것으로, 프로세스가 사용하는 메모리가 할당된 메모리보다 적을 때 발생한다.
외부 단편화
메모리를 동적으로 할당하고 부분적으로 자원을 회수했을 때, 연속되지 않은 메모리 공간의 여유는 있지만 새로 연속된 메모리를 할당할 공간이 없는 상태이다.

메모리 관리 기법

연속 메모리 관리 기법
프로그램 전체가 메모리의 연속적인 공간에 할당하는 기법
고정 분할 기법
메모리를 고정된 파티션으로 분할하는 방법으로, 내부 단편화가 발생할 수 있다.
동적 분할 기법
파이션을 크기에 맞춰 동적으로 생성하고 할당하는 방법으로, 외부 단편화가 발생할 수 있다.
불연속 메모리 관리 기법
프로그램이 부분적으로 서로 연속되지 않은 주소 공간에 할당될 수 있는 기법
Paging
프로세스를 일정한 크기의 페이지(page)로 분할해서 메모리에 로드하는 방식으로, 하나의 프로세스가 사용하는 메모리가 연속적이어야 한다는 제약을 피하는 메모리 관리 기법이다.
페이징 테이블(Paging Table)을 통해 page와 frame을 매핑하여, 하나의 프로세스에서 나누어져 있는 가상 메모리 페이지들이 실제 메모리의 어디 프레임에 저장되어 있는지 알 수 있다.
page 가상 메모리 내 고정 크기의 프로세스 조각
frame 페이지와 크기가 같은 주 기억 장치의 메모리 조각
메모리에 연속되어 저장될 필요가 없기 때문에 외부 단편화가 발생하지 않지만, 내부 단편화 문제가 발생할 수 있다. 내부 단편화 문제는 페이지 단위를 작게하여 해결할 수 있지만, 페이지 매핑 과정이 복잡해져 비효율적이다.
Segmentation
가상 메모리를 서로 크기가 다른 논리적 블록으로 분할한 것으로, 프로세스를 물리적 단위인 페이지가 아니라 논리적 단위인 세그먼트로 분할해 메모리에 적재하는 방식이다.
세그멘테이션도 세그먼트 테이블(Segment Table)을 통해 페이징 기법과 동일하게 매핑한다.
내부 단편화 문제를 해결할 수 있지만, 외부 단편화 문제가 발생할 수 있다.
보호와 공유 기능을 수행할 수 있고, 같은 코드 영역은 한 번에 저장할 수 있다는 장점이 있다.

가상 메모리 페이징과 가상 메모리 세그멘테이션

프로그램 중 필요하지 않는 부분은 메모리에 로드하지 않고, 필요한 경우에만 페이지 혹은 세그멘테이션 형태로 메모리에 로드하는 방식이다.
페이징의 외부 단편화 문제와 세그멘테이션의 내부 단편화 문제가 발생하지 않는다는 장점이 있지만, 복잡한 메모리 관리로 인한 오버헤드가 발생한다는 단점이 있다.