토픽 48 / 85·메모리 관리
세그멘테이션 (Segmentation)
세그멘테이션 (Segmentation)
프로그램을 논리적 단위(코드, 데이터, 스택, 힙 등)로 나누어 각 세그먼트를 독립적으로 메모리에 할당하는 메모리 관리 기법
목적: 논리적 분할, 보호·공유, 가변 크기, 모듈화
특징: 가변 크기, 논리적 단위, 세그먼트 테이블, 외부 단편화
구성요소: 세그먼트(코드/데이터/스택/힙), 세그먼트 번호, 오프셋, 세그먼트 테이블(베이스+리미트)
주소 변환: Logical Address =
세그먼트 테이블: 각 세그먼트의 베이스 주소(시작), 리미트(크기), 보호 비트(R/W/X)
보호·공유: 세그먼트별 권한 설정, 코드 세그먼트 공유(프로세스 간)
장점: 논리적 분할, 보호·공유 용이, 가변 크기, 모듈화
단점: 외부 단편화, 복잡한 메모리 관리, 세그먼트 테이블 메모리
적용사례: x86 세그멘테이션(Legacy), 페이징+세그멘테이션 혼합(x86-64는 플랫 모델)
비교: 세그멘테이션(가변/논리적/외부단편화) vs 페이징(고정/물리적/내부단편화)
연관: 페이징, 메모리 관리, 외부 단편화, 보호, 세그먼트 테이블