페이징 & 세그먼테이션
📄 페이징 (Paging) & 세그먼테이션 (Segmentation)
페이징과 세그먼테이션은 운영체제(OS)의 메모리 관리 기법 중 비연속 메모리 할당 방식의 대표적인 두 가지입니다. 프로세스의 논리적 주소 공간을 물리적 주소 공간에 비연속적으로 할당하여, 메모리 단편화 문제를 완화하고 효율적인 메모리 사용을 가능하게 합니다.
📄 페이징 (Paging)
페이징은 프로세스의 논리적 주소 공간을 고정된 크기의 블록인 페이지(Page)로 나누고, 물리적 주소 공간을 페이지와 동일한 크기의 프레임(Frame)으로 나누어 관리합니다. 프로세스가 실행될 때, 페이지들을 물리 메모리의 비어있는 프레임에 할당합니다.
- 특징 :
> * 고정 크기 분할: 페이지와 프레임의 크기가 고정되어 있습니다. > * 외부 단편화 없음: 빈 공간이 페이지 단위로 관리되므로, 외부 단편화는 발생하지 않습니다. > * 내부 단편화 발생 가능: 프로세스의 마지막 페이지가 프레임의 크기보다 작을 경우, 프레임의 남은 공간이 낭비될 수 있습니다.
- 주소 변환 : 페이지 테이블(Page Table)을 사용하여 논리적 주소(페이지 번호, 변위)를 물리적 주소(프레임 번호, 변위)로 변환합니다.
🧱 세그먼테이션 (Segmentation)
세그먼테이션은 프로세스의 논리적 주소 공간을 크기가 가변적인 블록인 세그먼트(Segment)로 나누어 관리합니다. 각 세그먼트는 코드, 데이터, 스택 등과 같이 사용자가 인식하는 논리적인 의미 단위로 분할됩니다.
- 특징 :
> * 가변 크기 분할: 세그먼트의 크기가 가변적입니다. > * 내부 단편화 없음: 세그먼트 크기에 맞춰 메모리를 할당하므로, 내부 단편화는 발생하지 않습니다. > * 외부 단편화 발생 가능: 가변적인 크기의 세그먼트들이 메모리에 할당되고 해제되면서, 사용 가능한 메모리 공간이 작은 조각들로 나뉘어 낭비될 수 있습니다.
- 주소 변환 : 세그먼트 테이블(Segment Table)을 사용하여 논리적 주소(세그먼트 번호, 변위)를 물리적 주소로 변환합니다.
💡 정보처리기사 핵심 Point
- 정보처리기사 시험에서는 페이징과 세그먼테이션의 개념, 장단점, 그리고 단편화 발생 여부를 비교하는 문제가 자주 출제됩니다.
- 페이징은 고정 크기, 세그먼테이션은 가변 크기로 분할한다는 점을 명확히 구분해야 합니다.
- 두 기법 모두 가상 메모리(Virtual Memory)를 구현하는 데 사용될 수 있습니다.