1. 기본 개념
- 페이징 (Paging)
- 정의: 가상 주소 공간과 물리 주소 공간을 동일한 크기의 고정된 크기(페이지, 프레임) 단위로 분할하여 관리하는 기법.
- 단위: 페이지(Page)와 프레임(Frame) – 일반적으로 페이지 크기는 4KB 등 고정 크기.
- 목적: 외부 단편화 문제를 해결하고, 메모리 할당을 단순화.
- 세그멘테이션 (Segmentation)
- 정의: 논리적인 단위(세그먼트)로 메모리를 분할하여 관리하는 기법. 각 세그먼트는 프로그램의 논리적 구조(코드, 데이터, 스택 등)에 따라 크기가 다를 수 있음.
- 단위: 세그먼트(Segment) – 세그먼트의 크기는 가변적.
- 목적: 프로그램의 논리적 구조를 반영하여 메모리를 관리하고, 논리적 단편화를 최소화.
2. 메모리 분할 방식
- 페이징
- 메모리를 고정 크기의 페이지로 나누고, 각 페이지를 물리 메모리의 프레임에 매핑.
- 모든 페이지는 동일한 크기를 가지므로 관리가 용이함.
- 세그멘테이션
- 메모리를 논리적인 세그먼트로 나누며, 각 세그먼트는 다른 크기를 가질 수 있음.
- 세그먼트는 프로그램의 함수, 배열, 데이터 구조 등과 같이 의미 있는 단위로 분할됨.
3. 주소 변환
- 페이징
- 논리 주소: 페이지 번호(Page Number) + 오프셋(Offset)
- 물리 주소: 프레임 번호(Frame Number) + 오프셋(Offset)
- 주소 변환은 페이지 테이블을 통해 이루어지며, 고정된 크기 덕분에 변환이 단순함.
- 세그멘테이션
- 논리 주소: 세그먼트 번호(Segment Number) + 세그먼트 내 오프셋(Offset)
- 물리 주소: 세그먼트의 기초 주소(Base Address) + 오프셋
- 주소 변환은 세그먼트 테이블을 통해 이루어지며, 각 세그먼트의 크기가 다르기 때문에 유연성이 있음.
4. 장단점 비교
구분페이징 (Paging)세그멘테이션 (Segmentation)
장점 | - 외부 단편화 없음 - 고정된 크기로 인한 단순한 메모리 관리 - 페이지 교체 알고리즘이 잘 정립됨 |
- 논리적 단편화 감소 - 프로그램의 논리적 구조와 일치하여 이해 용이 - 세그먼트 단위의 보호 및 공유 용이 |
단점 | - 내부 단편화 발생 가능 - 페이지 테이블 관리 오버헤드 발생 |
- 외부 단편화 발생 - 세그먼트 테이블 관리가 복잡 - 세그먼트 크기 조정 어려움 |
단편화 | 내부 단편화 | 외부 단편화 |
메모리 할당 | 고정된 크기 단위로 할당 | 가변 크기 단위로 할당 |
관리 복잡성 | 비교적 단순 | 상대적으로 복잡 |
적용 사례 | 현대의 대부분 운영체제 (예: Windows, Linux 등) | 일부 고급 시스템이나 특정 애플리케이션에서 사용 |
5. 결합 사용
많은 현대 운영체제에서는 페이징과 세그멘테이션을 결합한 세그멘테이션-페이징(Segmentation-Paging) 기법을 사용합니다. 이 방식은 세그먼트의 논리적 구조를 유지하면서, 각 세그먼트를 페이징하여 외부 단편화를 줄이고, 메모리 관리의 유연성과 효율성을 동시에 추구합니다.
6. 예시
- 페이징 예시
- 가상 메모리: 16페이지 (각 페이지 4KB)
- 물리 메모리: 8프레임 (각 프레임 4KB)
- 페이지 테이블을 통해 가상 페이지를 물리 프레임에 매핑하여 메모리 접근.
- 세그멘테이션 예시
- 프로그램의 코드 세그먼트, 데이터 세그먼트, 스택 세그먼트 등으로 분할.
- 각 세그먼트는 다른 크기를 가지며, 세그먼트 테이블을 통해 물리 메모리 내 위치를 관리.
결론
페이징과 세그멘테이션은 각각의 장단점을 가지고 있으며, 메모리 관리의 목적과 시스템의 요구에 따라 적절히 선택되거나 결합되어 사용됩니다. 페이징은 단순하고 효율적인 메모리 관리가 가능하지만, 내부 단편화의 문제가 있을 수 있으며, 세그멘테이션은 논리적 구조를 반영하여 메모리를 관리할 수 있지만, 외부 단편화와 관리의 복잡성이 존재합니다. 현대 운영체제는 이러한 두 기법의 장점을 살리기 위해 종종 결합된 방식을 채택하고 있습니다.
'전산 관련 시험 > 전산학(컴퓨터일반) 개념정리' 카테고리의 다른 글
[네트워크] 스패닝 트리 프로토콜(Spanning Tree Protocol, STP) (0) | 2024.09.10 |
---|---|
[DB] RDBMS (관계형 DB) VS NoSQL (비관계형 DB) (0) | 2024.09.10 |
[OS] 페이징 (논리, 물리주소) 매칭을 통해 페이지 넘버 오프셋 지정 (0) | 2024.09.10 |
[OS] 페이지 테이블 용량 32 CPU, 2GB, 4KB (1) | 2024.09.10 |
[DB] CAP 이론과 RDBMS vs NoSQL (0) | 2024.04.24 |
댓글