아래 비교 차트를 사용하여 페이징과 세분화의 차이점에 대해 설명합니다.
비교 차트
비교의 근거 | 페이징 | 분할 |
---|---|---|
기본 | 페이지는 고정 블록 크기입니다. | 세그먼트는 가변 크기입니다. |
분열 | 페이징은 내부 단편화로 이어질 수 있습니다. | 세분화는 외부 분열로 이어질 수 있습니다. |
주소 | 사용자 지정 주소는 CPU로 페이지 번호와 오프셋으로 나뉩니다. | 사용자는 각 주소를 세그먼트 수와 오프셋 (세그먼트 제한)의 두 가지 양으로 지정합니다. |
크기 | 하드웨어가 페이지 크기를 결정합니다. | 세그먼트 크기는 사용자가 지정합니다. |
표 | 페이징은 각 페이지의 기본 주소를 포함하는 페이지 테이블을 포함합니다. | 분할에는 세그먼트 수와 오프셋 (세그먼트 길이)을 포함하는 세그먼트 테이블이 포함됩니다. |
호출의 정의
페이징 은 메모리 관리 체계 입니다. 페이징은 프로세스가 비 연속적인 방식으로 메모리에 저장되도록합니다. 프로세스를 불연속 방식으로 저장하면 외부 조각화 문제가 해결됩니다.
페이징을 구현하기 위해 물리적 메모리 공간과 논리적 메모리 공간 은 동일한 고정 크기 블록으로 분할됩니다. 이러한 고정 크기의 실제 메모리 블록을 프레임 이라고하며 고정 크기의 논리 메모리 블록을 페이지 라고 합니다 .
프로세스를 실행해야 할 때 논리 메모리 공간의 프로세스 페이지가 실제 메모리 주소 공간의 프레임에로드됩니다. 이제 프레임에 액세스하기 위해 CPU 에서 생성 된 주소는 페이지 번호 와 페이지 오프셋의 두 부분으로 나뉩니다.
분할의 정의
페이징과 마찬가지로 세그먼테이션 또한 메모리 관리 체계 입니다. 사용자의 메모리보기를 지원합니다. 프로세스는 가변 크기 세그먼트 로 나누어 져 논리 메모리 주소 공간에로드됩니다.
논리 주소 공간은 가변 크기 세그먼트의 모음입니다. 각 세그먼트에는 이름 과 길이가 있습니다. 실행을 위해 논리 메모리 공간의 세그먼트가 실제 메모리 공간에로드됩니다.
페이징과 세분화의 주요 차이점
- 페이징과 세그먼트 화의 기본적인 차이점은 페이지가 항상 고정 블록 크기 인 반면 세그먼트는 가변 크기 인 점 입니다.
- 페이징은 페이지가 고정 블록 크기이기 때문에 내부 단편화 로 이어질 수 있지만 프로세스가 메모리에서 내부 단편을 생성 할 전체 블록 크기를 확보하지 못할 수도 있습니다. 메모리가 가변 크기 블록으로 채워지면 세분화 로 인해 외부 조각화 가 발생할 수 있습니다.
- 페이징에서 사용자는 하드웨어로 페이지 번호와 오프셋 으로 나눈 주소로만 하나의 정수 를 제공합니다. 다른 한편, 세분화에서 사용자는 세그먼트 수와 오프셋의 두 가지 수량으로 주소를 지정합니다.
- 페이지 크기는 하드웨어에 의해 결정되거나 지정됩니다. 반면 세그먼트의 크기는 사용자 가 지정합니다.
- 페이징에서 페이지 테이블 은 논리 주소를 실제 주소에 매핑하고 실제 메모리 공간의 프레임에 저장된 각 페이지의 기본 주소를 포함합니다. 그러나 세그먼트 화에서 세그먼트 테이블 은 논리 주소를 실제 주소로 매핑하며 세그먼트 번호와 오프셋 (세그먼트 제한)을 포함합니다.
결론:
페이징 및 분할은 모두 메모리 관리 체계 입니다. 페이징은 메모리를 고정 크기 블록 으로 분할하는 반면 세그먼트 화는 메모리 공간을 가변 블록 크기의 세그먼트 로 나눕니다. 페이징이 내부 단편화로 이어지는 경우 세분화는 외부 단편화로 연결됩니다.