페이징이란 무엇인가요?
페이징은 운영 체제에서 외부 단편화 문제를 해결하는 데 사용된다.
이 기술을 사용하면 필요한 데이터를 최대한 빨리 사용할 수 있다.
핵심 용어
논리적 주소(logical address)
프로세스가 메모리에 적재되기 위한 독자적인 주소 공간인 논리적 주소가 생성된다.
논리적 주소는 각 프로세스마다 독립적으로 할당되며, 0번지부터 시작된다.
물리적 주소(physical address)
프로세스가 실제로 메모리에 적재되는 위치를 말한다.
주소 바인딩(address binding)
CPU가 기계어 명령을 수행하기 위해 프로세스의 논리적 주소가 실제 물리적 메모리의 어느 위치에 매핑되는지 확인하는 과정을 말한다.
Paging
paging기법은 프로세스의 메모리 공간을 동일한 크기의page단위로 나누어 물리적 메모리의 서로 다른 위치에page들을 저장하는 메모리 관리 기법이다.paging기법에서는 물리적 메모리를page와 같은 크기의frame으로 미리 나누어둔다.또한, 주소 바인딩을 위해 모든 프로세스가 각각의 주소 변환을 위한
page table을 갖는다.

물리적 메모리 공간이 작은 조각으로 나눠져서 메모리가 충분히 존재함에도 할당이 불가능한 상태를 메모리 단편화가 발생했다고 한다.
paging기법에서는 프로세스의 논리적 주소 공간과 물리적 메모리가 같은 크기의page단위로 나누어지기 때문에 외부 단편화 문제는 발생하지 않는다.하지만 프로세스 주소 공간의 크기가
page크기의 배수라는 보장이 없기 때문에, 프로세스의 주소 공간 중 가장 마지막에 위치한page에서는 내부 단편화 문제가 발생할 가능성이 존재한다.내부 단편화 : 메모리의 크기가 프로세스의 크기보다 큰 경우
Segmentation
segmentation기법은 프로세스가 할당받은 메모리 공간을 논리적 의미 단위(segment)로 나누어, 연속되지 않는 물리 메모리 공간에 할당될 수 있도록 하는 메모리 관리 기법이다.일반적으로 프로세스의 메모리 영역 중
Code,Data,Heap,Stack등의 기능 단위로segment를 정의하는 경우가 많다.segmentation기법에서는 주소 바인딩을 위해 모든 프로세스가 각각의 주소 변환을 위한segment table을 갖는다.

segmentation기법에서segment의 크기만큼 메모리를 할당하므로 내부 단편화 문제는 발생하지 않는다.하지만 서로 다른 크기의
segment들이 메모리에 적재되고 제거되는 일이 반복되면, 외부 단편화 문제가 발생할 가능성이 있다.외부 단편화 : 남은 메모리의 합이 프로세스의 크기보다 크지만, 연속된 메모리가 아니어서 할당이 불가능한 상태
Paging과 Segmentation 차이
Paging기법은 일정한 크기의 단위로 나누어 할당한다.(고정 크기)Segmentation기법은Code,Data,Heap,Stack등의 기능(의미) 단위로 물리 메모리에 할당한다.(가변 크기)
Paged Segmentation
paged segmentation기법은segmentation기법을 기본으로 하되, 이를 다시 동일 크기의page로 나누어 물리 메모리에 할당하는 메모리 관리 기법이다.즉, 프로그램을 의미 단위의
segment로 나누고, 개별segment의 크기를page의 배수가 되도록 하는 방법이다.이를 통해
segmentation기법에서 발생하는 외부 단편화 문제를 해결하고, 동시에segment단위로 프로세스 간의 공유나 접근 권한 보호가 이루어지도록 해서paging기법의 단점을 해결한다.
참고
Last updated