1. 페이징의 기본 구조
- 운영체제는 **각 프로세스마다 페이지 테이블(Page Table)**을 하나씩 가짐
- 즉, 페이지 테이블은 주기억장치에 위치 ( OS 주소 공간 내) - 페이지 테이블은 가상 주소의 페이지 번호를 실제 물리 메모리의 프레임 번호로 변환해주는 역할을 함.
- 프로세스 실행 중에 하나의 데이터를 접근하려면,두 번의 기억장치 접근이 필요(한 번은 페에지 테이블, 한 번은 데이터 접근) - 보통 이 페이지 테이블은 운영체제의 주소 공간 내 RAM에 저장되어 있음
2. 메모리 접근 시간과 성능 문제
프로세스가 메모리 내 데이터를 읽기 위해서는 다음과 같은 두 번의 접근이 필요
- 페이지 테이블 접근: 가상 주소를 물리 주소로 변환
- 실제 데이터 접근: 물리 주소로 원하는 데이터를 읽기
➤ 이런 방식은 메모리 접근 시간이 두 배로 증가하게 되므로 성능에 큰 영향을 줌.
3. 성능 향상을 위한 해결책: TLB
이 문제를 해결하기 위해 등장한 것이 바로 **TLB (Translation Lookaside Buffer)**

1) TLB란?
- 연관 메모리(Associative Memory) 또는 연관 레지스터라고도 불림
- 최근에 사용된 페이지 테이블 항목들을 저장하는 고속 캐시
- 페이지 테이블은 메모리의 OS안에 존재, 페이지 테이블에서 최근에 참조한 것을 TLB에 넣음(캐싱)
- 이후에 참조할 때 TLB에 있는 정보일 경우 바로 사용 가능 - 병렬 검색이 가능하여, 매우 빠르게 페이지 번호를 찾을 수 있음
2) 주소 변환 과정
- CPU가 가상 주소를 생성하면 먼저 TLB를 참조
- TLB hit: 해당 페이지 번호가 TLB에 존재 → 바로 프레임 번호 얻음
- TLB miss: TLB에 없으면 → 일반 페이지 테이블(RAM)에 접근하여 매핑
4. TLB 성능 연습문제 예시
문제:
TLB 접근 시간 = 10ns,메인 메모리 접근 시간 = 20ns
TLB miss 시 데이터 참조에 걸리는 시간은?
정답:
- TLB miss → 페이지 테이블 접근 (20ns) + 실제 데이터 접근 (20ns) = 40ns
5. 페이지 보호 기능 (Protection)
페이징은 단순한 주소 변환 외에도 보호 기능을 제공
- 각 페이지마다 읽기/쓰기 권한을 설정할 수 있는 보호 비트 존재
- MMU는 주소를 변환할 때 보호 비트를 검사함
- 예를 들어, 읽기 전용 페이지에 쓰기를 시도하면 → MMU가 인터럽트를 발생시켜 오류 처리
6. 페이지의 공유 (Shared Pages)
페이징의 또 다른 큰 장점은 여러 프로세스가 특정 페이지(특히 코드)를 공유할 수 있다는 점.

✏️ 예시: 문서 편집기 사용
- 40명의 사용자가 150KB 코드 + 50KB 데이터로 구성된 문서 편집기를 사용 중
- 페이지 공유 없을 경우: 40 × (150 + 50) = 8000KB 필요
- 코드 영역만 공유할 경우:
- 코드: 150KB (공유)
- 데이터: 40 × 50 = 2000KB
- 총합: 150 + 2000 = 2150KB
- ➤ 5850KB의 메모리를 절약할 수 있음!
'OS' 카테고리의 다른 글
| [운영체제] 가상 기억장치란?? (0) | 2025.05.21 |
|---|---|
| [운영체제] 페이지 테이블 구조 란?? (0) | 2025.05.19 |
| [운영체제] 기억장치의 관리란?? (0) | 2025.05.12 |
| [운영체제] 교착상태 란?? (0) | 2025.05.05 |
| [운영체제] 임계 구역 문제 란?? (0) | 2025.04.30 |