운영체제 - Address Translation

eucartio·2024년 5월 16일

운영체제

목록 보기
11/19

Address Translation

Memory Virtualizing with Efficiency and Control

  • 메모리 가상화
    • 프로그램이 자체적이고 무한한 메모리를 가지고 있다는 환상을 만든다.
    • 효율성, 제어 가능성 및 유연성을 위해 제한된 직접 실행과 유사한 전략을 취한다.
    • 메모리 가상화에서는 하드웨어 지원을 통해 효율성과 제어가 이루어진다.
      • EX) Registers, TLB(Translation Look-aside Buffer)s, Page-Table

Address Translation

  • 하드웨어에 의해 가상 주소를 물리적 주소로 변경
  • OS의 올바른 변환을 위한 메모리 관리

Assumptions

  • 주소 공간은 실제 메모리에 연속적으로 저장된다.
  • 주소 공간의 크기는 실제 메모리 크기보다 작다.
  • 각각의 주소 공간은 정확히 같은 크기이다.

Relocation Address Space

  • 프로그램의 관점에서, 주소 공간은 주소 0에서 시작
  • 메모리 가상화를 위해 OS는 프로세스를 실제 메모리 공간에 위치시키려 함
    • 프로세스를 투명한 방식으로 메모리에서 재배치하려면?
    • 0에서 시작하는 가상 주소 공간을 생성하려면?

Base and Bounds Register

  • Bounds Register = Size of Process
  • Base Register = Starting Address of Process in Physical Memory
    ⠀⠀
  • Physical Address = Virtual Address + Base Register
  • 0 ≤ Virtual Address < Bounds Address
    ⠀⠀
  • 역할
    • 실제 메모리의 어느 곳에나 주소 공간 배치 가능
    • 프로세스가 자신의 주소 공간에만 접근할 수 있도록 보장
  • 필수 전제 조건
    • Base/Bounds Register는 OS에 의해서만 접근 가능하며 PCB에 존재

Memory Management Unit

OS Issues for Memory Virtualizing

  • OS는 Base-and-Bounds 접근 방식을 구현하기 위해 조치 필요

When a Process Starts Running

  • OS는 새로운 주소를 위한 공간을 찾아야 한다.
    • Free List: 사용되지 않는 실제 메모리의 범위 목록

When a Process is Terminated

  • OS는 메모리를 Free List에 다시 넣어야 한다.

When Context Switch Occurs

  • OS는 Base-and-Bounds를 PCB에 저장 및 복원해야 한다.
  • Base/Bounds Register의 변경은 Kernel Mode에서 진행된다.

0개의 댓글