803 단어
4 분
페이징과 세그멘테이션 기법
메모리 관리 기법: 페이징과 세그멘테이션
TIP초기 컴퓨터는 연속 할당 방식을 사용 구현은 단순하지만 메모리 단편화와 동적 크기 변화에 대응하기 어려움 이후 페이징과 세그멘테이션 기법이 등장 MS-DOS나 임베디드에서는 아직 연속할당을 사용
현재는 대부분 페이징 기법을 기반으로 운영
공통점
- 메모리를 일정 단위로 나누어 사용
- 논리 주소를 물리 주소로 변환
- 페이징 테이블 또는 세그멘테이션 테이블로 변환 과정을 관리
- 메모리 보호 기능을 지원
- 가상 메모리와 연동 가능하다는 점이 특징
세그멘테이션 기법
세그멘테이션은 논리적 단위인 세그먼트(코드, 데이터, 스택 등)로 나누어 메모리에 할당
세그먼트 크기는 가변적이며, 외부 단편화가 발생할 수 있음
메모리 보호와 접근 권한 설정이 가능하며, 동적 크기 변경 시 압축이 필요할 수 있음
TIP각 세그먼트는 연속된 메모리 공간을 할당받음 프로세스 전체가 연속된 공간에 있지 않아도 됨
대표 기반 프로그램
- Intel 80286
- Multics
- IBM System/38
- HP 3000
페이징 기법
페이징은 메모리를 고정 크기 페이지로 분할하고, 각 페이지를 프레임에 할당
페이지 크기는 일반적으로 4KB 또는 8KB
외부 단편화 문제는 해결되지만, 내부 단편화가 발생할 수 있음
주소 변환 과정에서 성능 오버헤드가 있으나 가상 메모리와 궁합이 좋음
대표 운영체제
- Windows NT 계열 (Windows 10, 11 등)
- Linux (Ubuntu, CentOS, Debian 등)
페이징과 세그멘테이션 비교
| 특징 | 페이징 (Paging) | 세그멘테이션 (Segmentation) |
|---|---|---|
| 분할 단위 | 고정 크기 페이지 | 가변 크기 세그먼트 |
| 책임 주체 | 운영체제 | 컴파일러 및 운영체제 |
| 크기 결정 | 하드웨어에 의해 고정 | 사용자/컴파일러가 결정 |
| 속도 | 상대적으로 빠름 | 상대적으로 느림 |
| 단편화 유형 | 내부 단편화 가능 | 외부 단편화 가능 |
| 크기 제약 | 페이지 크기=프레임 크기 | 크기 제한 없음 |
페이징 기법이 가상 메모리에 적합한 이유
- 고정 크기 페이지로 메모리 관리가 단순
- 가상 주소와 물리 주소 간 매핑이 쉽고 효율적
- 동적 메모리 요구와 프로그램 크기 변화에 유연하게 대응
가상 메모리 개념
가상 메모리는 실제 물리 메모리보다 큰 메모리를 사용하는 것처럼 보이게 함
프로그램은 가상의 메모리 주소를 받아 사용하며, 이는 실제 주소가 아님
이로써 실제 물리 메모리 한계를 극복하고 큰 프로세스 실행이 가능
TIP페이징과 세그멘테이션은 현대 운영체제의 핵심 메모리 관리 기법
페이징과 세그멘테이션 기법
https://devlog.jpstudy.org/posts/2025/cs/pagingsegment/