운영체제 | 가상 메모리를 위한 TLB

Faithful Dev·2025년 1월 26일

컴퓨터 공학

목록 보기
34/81

MMU (Memory Management Unit)

MMU는 CPU와 물리 메모리 사이에 위치한 하드웨어 컴포넌트로, 논리 주소(가상 주소)를 물리 주소로 변환하는 역할을 수행한다. MMU는 운영체제의 메모리 관리 시스템과 협력하여 효율적이고 안전한 메모리 접근을 보장한다.

MMU의 주요 기능

  • 주소 변환(Address Translation): 논리 주소(페이지 번호와 오프셋)를 물리 주소(프레임 번호와 오프셋)로 변환한다.
  • 권한 관리: 페이지 접근 권한을 관리하여 불법적인 메모리 접근을 차단한다.
  • 페이지 폴트(Page Fault) 처리: 필요한 페이지가 물리 메모리에 없는 경우 운영체제에 알림을 보내고 페이지 교체를 수행하도록 요청한다.
  • 캐싱 지원: TLB와 같은 캐시 메커니즘과 상호작용하여 주소 변환 속도를 높인다.

TLB (Translation Lookaside Buffer)

TLB는 MMU 내부 또는 외부에 위치한 고속 캐시로, 페이지 테이블의 최근 참조 정보를 저장하여 주소 변환의 성능을 높이는 역할을 한다.

TLB의 주요 특징

  • 빠른 주소 변환: MMU가 논리 주소를 물리 주소로 변환할 때, TLB에 저장된 정보를 우선 검색하여 페이지 테이블 조회를 생략할 수 있다.
  • LRU 캐싱: 자주 사용되는 페이지의 정보를 유지하기 위해 일반적으로 LRU(Least Recently Used) 같은 캐싱 알고리즘을 사용한다.
  • TLB 미스(TLB Miss): TLB에서 정보를 찾지 못하면 페이지 테이블을 조회해야 하므로 속도가 느려질 수 있다.
    이 경우, TLB는 새로 조회된 페이지 정보를 업데이트한다.

TLB의 구조

  • TLB 항목: 페이지 번호와 프레임 번호의 매핑 정보가 포함된다.
  • 연관 기억 장치(Content Addressable Memory, CAM): 빠른 검색을 위해 TLB는 CAM을 사용하여 페이지 번호를 직접 검색한다.

페이징 시스템과 공유 메모리 (Shared Memory)

페이징 시스템에서의 공유 메모리

페이징 시스템은 물리 메모리와 논리 메모리를 분리하여 관리하기 때문에, 프로세스 간에 특정 메모리 영역을 공유하는 것이 용이하다.

  • 페이지 공유: 운영체제가 특정 페이지를 여러 프로세스의 테이블에 매핑하여 동일한 물리 메모리를 공유할 수 있다.
    • 예: 다중 프로세스가 동일한 라이브러리 코드(읽기 전용)를 사용할 경우, 해당 코드가 저장된 페이지를 공유하여 메모리 사용량을 줄일 수 있다.
  • 읽기 전용(공유) vs 쓰기 가능(복사-온-라이트):
    • 공유 메모리가 쓰기 가능하도록 설정된 경우, Copy-on-Write(CoW) 방식을 사용하여 쓰기 시점에 별도의 페이지를 생성한다.
    • 읽기 전용으로 설정된 페이지는 모든 프로세스가 변경 없이 공유할 수 있다.

공유 메모리의 활용

  • 프로세스 간 통신(IPC): 공유 메모리는 프로세스 간 통신(Inter-Process Communication) 메커니즘으로 자주 사용된다.
    • 예: 데이터베이스 서버에서 여러 클라이언트가 동일한 데이터 블록을 읽고자 할 때.
  • 성능 최적화: 메모리 복사를 최소화하여 성능을 향상시킬 수 있다.

페이지 공유와 보안 문제

  • 잘못 설정된 공유 메모리는 메모리 침범(Security Violation)을 야기할 수 있다.
  • MMU는 권한 비트를 활용하여 프로세스 간의 비정상적인 접근을 방지한다.

페이징 시스템과 MMU, TLB, 공유 메모리의 상호작용

주소 변환 과정

  1. 논리 주소 생성: CPU는 프로세스의 논리 주소를 생성한다.
  2. TLB 검색: MMU는 TLB를 먼저 검색하여 해당 논리 주소의 페이지 번호와 매핑된 프레임 번호를 찾는다.
    • TLB 히트(TLB Hit): 매핑 정보를 바로 사용
    • TLB 미스(TLB Miss): 페이지 테이블을 조회
  3. 물리 주소 생성: 페이지 번호가 변환된 프레임 번호와 오프셋을 결합하여 물리 주소가 생성된다.
  4. 메모리 접근: 변환된 물리 주소를 통해 메모리에 접근한다.

공유 메모리 관리

  • 페이지 테이블을 통한 공유: 프로세스 A와 B가 동일한 물리 페이지를 사용하도록 페이지 테이블을 설정한다.
  • TLB와 공유 메모리: 공유 메모리가 사용되는 경우, TLB는 해당 페이지의 매핑 정보를 캐시하여 빠른 접근을 제공한다.

정리

TLB

  • 장점: 주소 변환 속도 향상, CPU-메모리 병목현상 완화
  • 단점: TLB 미스 발생 시 성능 저하, 제한된 캐시 크기

MMU

  • 장점: 메모리 보호, 주소 변환 자동화, 페이징 및 세그먼테이션 지원
  • 단점: 주소 변환 오버헤드, 추가 하드웨어 필요

공유 메모리

  • 장점: 프로세스 간 통신 속도 향상, 메모리 효율성 증가
  • 단점: 보안 및 동기화 문제, 설정 오류 시 충돌 가능성

MMU, TLB, 페이징 시스템, 공유 메모리는 현대 운영체제의 메모리 관리 핵심 요소로, 서로 상호작용하며, 성능과 효율성을 극대화한다.

profile
Turning Vision into Reality.

0개의 댓글