← 기술 지식

기술 지식 / 컴퓨터 과학 / 운영체제 / 메모리 관리

페이지·세그먼트와 주소 공간 태그

논리 구간 보호와 물리 페이지 배치를 나누고 결합 변환·ASID/PCID·대형 페이지의 이득과 무효화 비용을 설명합니다.

운영체제 · 원리·구현·운영
기술 지식 트리

주소 변환은 논리적으로 의미 있는 영역을 선택하는 단계와, 그 안의 가상 페이지를 물리 프레임으로 매핑하는 단계를 분리해 이해해야 합니다. 세그먼트의 범위·권한 검사를 통과해도 페이지 매핑·TLB 상태·접근 권한에서 실패할 수 있으며, 주소 공간 태그는 전환 비용을 줄일 뿐 보호 검사를 없애지 않습니다.

논리 영역과 물리 배치의 분리

코드·데이터·스택처럼 의미 있는 영역을 구분하는 세그멘테이션과, 주소 공간을 고정 크기 페이지로 나누어 물리 프레임에 연결하는 페이징은 다른 목적의 모형입니다. 세그먼트는 논리 경계·권한을, 페이지는 비연속 물리 배치와 고정 단위 관리를 표현하기 쉽습니다.

현대 CPU·OS가 교과서의 세그먼트 selector·base·limit 모델을 모두 같은 방식으로 사용하지는 않습니다. 개념 비교와 특정 플랫폼의 실제 평탄 주소 모델을 나누어 설명해야 합니다. 페이지 크기를 4KiB라고 가정하고 가상 주소를 페이지 번호와 offset으로 나누면, 같은 offset을 유지한 채 페이지 번호만 페이지 테이블에서 프레임 번호로 바꿉니다. A와 B가 같은 가상 주소를 사용해도 ASID/PCID가 다르면 서로 다른 변환으로 구분됩니다. 태그를 재사용하거나 매핑을 바꾼 직후 낡은 TLB가 남으면 잘못된 변환이므로 해당 무효화 범위를 확인해야 합니다.

세그먼트·페이지 변환의 수치 비교

세그먼트의 base=1000, limit=400이면 offset 120은 범위 안이고 단순 연속 모형의 주소는 1120입니다. offset 450은 base를 더하기 전에 범위 오류입니다. 페이징에서는 주소를 페이지 번호·페이지 내부 offset으로 나누고 페이지 번호를 프레임 번호로 변환합니다.

모델 주소 해석 대표 비용
연속 세그먼트 selector→base·limit, offset 검사 가변 크기 외부 단편화
페이징 페이지→프레임, 내부 offset 유지 테이블·TLB·끝 페이지 내부 낭비
세그먼트 내부 페이징 논리 범위 검사 뒤 페이지 변환 두 단계 관리·권한 결합

세그먼트 범위 검사를 통과했다고 주소 변환이 끝난 것은 아닙니다. 그 뒤 논리 주소를 페이지 번호와 내부 offset으로 나누고, 페이지 번호가 프레임에 매핑되어 있으며 현재 읽기·쓰기·실행 권한이 맞는지 다시 확인해야 합니다. 따라서 세그먼트는 통과했어도 페이지가 없거나 권한이 맞지 않으면 접근이 실패할 수 있습니다.

논리 범위와 페이지 권한을 따로 검사합니다세그먼트 + offset. 논리 범위·권한 확인. 페이지 번호·내부 offset. 프레임 매핑·페이지 권한영역 선택범위 안변환·보호세그먼트 + offset논리 범위·권한 확인페이지 번호·내부 offset프레임 매핑·페이지 권한
논리 범위와 페이지 권한을 따로 검사합니다 화살표는 세그먼트 내부 페이징의 개념 모형입니다. 실제 하드웨어에서 동일한 단계가 모두 그대로 존재한다는 주장은 아닙니다.
그림을 글로 읽기
  • 세그먼트 + offset
  • 논리 범위·권한 확인
  • 페이지 번호·내부 offset
  • 프레임 매핑·페이지 권한
  1. 세그먼트 + offset → 논리 범위·권한 확인: 영역 선택
  2. 논리 범위·권한 확인 → 페이지 번호·내부 offset: 범위 안
  3. 페이지 번호·내부 offset → 프레임 매핑·페이지 권한: 변환·보호

세그먼트 내부 페이징과 물리 연속 공간 요구

논리 데이터 구간이 길어도 페이지마다 서로 다른 물리 프레임을 사용할 수 있습니다. 세그먼트 전체를 한 물리 구멍에 넣는 단순 모형의 외부 단편화를 줄입니다. 그러나 끝 페이지의 빈 공간과 페이지 테이블 메모리, 매핑 준비·회수 비용은 남습니다.

페이지가 크면 테이블 항목 수와 TLB miss가 줄 수 있지만 작은 객체·부분 보호·회수에는 불리할 수 있습니다. 큰 페이지의 첫 쓰기 초기화·연속 할당·compaction·fallback도 실제 환경에서 확인해야 합니다.

TLB 항목과 주소 공간 태그

프로세스 A와 B가 둘 다 가상 주소 0x1000을 사용해도 물리 프레임은 다를 수 있습니다. TLB 항목을 가상 페이지 번호만으로 재사용하면 잘못된 공간을 읽을 수 있습니다. ASID·PCID 같은 태그는 변환을 주소 공간과 연결해 전환 때 모든 항목을 무조건 비우는 비용을 줄일 수 있습니다.

태그의 개수가 유한하므로 재사용할 때 옛 항목 무효화가 필요합니다. 페이지 매핑·권한이 바뀌면 해당 코어와 다른 코어의 낡은 변환을 적절히 무효화해야 합니다. 태그가 있다고 변경을 자동으로 즉시 모든 코어에 반영하는 것은 아닙니다.

변환 재사용과 잔여 전환 비용

ASID·PCID가 TLB 재사용을 돕더라도 레지스터·스케줄러·데이터 cache·NUMA 이동 비용은 남습니다. CPU·OS·보안 설정이 실제 보존·무효화 동작을 바꿀 수 있습니다. 특정 플랫폼의 전환을 늘 모든 TLB flush 또는 늘 완전 보존으로 단정하지 않습니다.

같은 프로그램에서 페이지 크기·주소 공간 전환·접근 패턴을 바꾸어 TLB miss·page walk·fault·RSS·p99를 함께 비교합니다. 큰 페이지 적용으로 변환 miss만 줄고 전체 지연이 늘 수 있으므로 결과를 분리해야 합니다.

경계·권한 실패 시험

세그먼트 마지막 유효 offset과 첫 초과 offset, 페이지 경계 양쪽, 읽기 전용 쓰기, 새 태그 재사용, 매핑 교체를 모형과 실제 도구로 비교합니다. 거대한 매핑이 모두 상주한다는 가정과, TLB miss가 곧 디스크 읽기라는 가정을 피합니다.

이 노트는 주소 변환의 층을 설명하는 자료이며 특정 CPU 명령을 실행한 검증 결과가 아닙니다. 실제 환경의 변환 규칙과 성능 카운터 정의를 확인한 뒤 비용을 측정해야 합니다.

후속·관련 개념

이 개념의 확장

함께 읽을 문서

전체 기술 지식
선택 연습 · 관련 질문 4개

질문은 이해를 확인하는 보조 자료입니다. 학습 경로와 문서의 범위는 질문 수와 독립적입니다.