memory page segment

agnusdei·2024년 11월 10일
0

Hardware & Software

목록 보기
125/136
  1. 페이지(Page) 기법

페이지 기법은 메모리를 고정된 크기의 단위로 나누어 사용하는 방식입니다. 이를 통해 메모리 공간을 비연속적으로 사용할 수 있으며, 외부 단편화 문제를 줄입니다. 각 프로세스는 페이지(Page) 단위로 나뉘어 메모리에 할당되며, 운영체제는 페이지와 일치하는 크기의 프레임(Frame) 단위로 메모리를 관리합니다. 이로 인해 전체적으로 고정 크기의 작은 조각으로 메모리가 나누어지기 때문에, 필요한 공간이 연속적일 필요가 없습니다.

이 방식은 페이지 테이블(Page Table)을 사용하여 논리 주소(프로세스가 인식하는 주소)를 물리 주소(실제 메모리 주소)로 변환하는 과정에서 효율적으로 관리됩니다. 각 페이지가 메모리 프레임에 비연속적으로 할당될 수 있으므로 외부 단편화가 발생하지 않지만, 마지막 페이지에서 사용하지 않는 공간이 생길 수 있는 내부 단편화가 발생할 수 있습니다.

페이지 기법은 메모리를 규칙적으로 고정 크기 블록으로 나누기 때문에 관리가 용이하며, 프로세스가 연속적인 메모리 공간을 필요로 하지 않는 경우 유리합니다. 그러나 고정된 페이지 크기 때문에, 최종 페이지 내 낭비가 발생할 수 있는 단점이 있습니다.

  1. 세그먼트(Segment) 기법

세그먼트 기법은 메모리를 논리적인 단위로 변동 크기로 나누어 사용하는 방식입니다. 세그먼트는 프로그램의 코드, 데이터, 스택 등과 같이 기능적으로 구분된 영역으로 나누어지며, 각 세그먼트는 필요한 크기만큼의 메모리를 할당받습니다. 프로세스마다 세그먼트 크기가 다르기 때문에, 각 프로세스는 서로 다른 크기의 세그먼트로 나뉩니다.

세그먼트 기법에서는 세그먼트 테이블(Segment Table)을 통해 세그먼트의 시작 주소와 길이를 기록하여 주소 변환을 관리합니다. 프로세스는 세그먼트 번호와 오프셋을 사용해 논리 주소를 물리 주소로 변환하며, 이로 인해 프로세스가 메모리 상에 비연속적으로 위치하더라도 논리적인 접근이 가능해집니다.

세그먼트 기법은 내부 단편화가 적고, 프로그램의 논리적 구조를 반영할 수 있어 코드 관리가 효율적입니다. 그러나 세그먼트의 크기가 불규칙하므로 비연속적인 빈 공간이 발생해 외부 단편화가 생길 수 있습니다.

두 기법의 차이

페이지 기법은 메모리를 고정된 크기 단위로 관리해 외부 단편화를 줄이고자 하는 반면, 세그먼트 기법은 변동 크기 단위로 나누어 각 프로세스의 구조를 반영하는 데 중점을 둡니다. 페이지 기법은 주로 주소 변환의 간결함과 메모리 낭비 방지를 목적으로 하고, 세그먼트 기법은 코드와 데이터를 논리적으로 구분해 접근성을 높입니다.

실제 운영체제에서는 이 두 가지 기법의 장점을 결합한 세그먼트-페이지 기법을 통해 메모리 효율성을 극대화하고 단편화 문제를 최소화하는 방식도 사용됩니다.

0개의 댓글