GrowMe

[운영체제] 메모리 관리 (1) : 컴퓨터가 메모리를 관리하는 방법 본문

CS(Computer science)

[운영체제] 메모리 관리 (1) : 컴퓨터가 메모리를 관리하는 방법

오늘도 타는중 2023. 1. 17. 17:46
메모리 관리 (1)
# Logical VS Physical Address
# 주소 바인딩
# MMU
# Dynamic Relocation
# Hardware Support for Address Translation


✍️ 본 포스팅은 이화여자대학교 반효경 교수님의 "운영체제" 강의를 들으며 정리한 내용입니다.

 


*Logical  VS  Physical Address

메모리라는 것은 주소를 통해 접근하는 정보 저장 기억장치이다. 주소는 두 가지가 존재한다.

- Logical address (= virtual address)

  • 프로세스마다 독립적으로 가지는 주소 공간
  • 각 프로세스마다 0번지부터 시작
  • CPU가 보는 주소는 logical address임

- Physical address

  • 메모리에 실제 올라가는 위치

- 주소 바인딩

  • 주소를 결정하는 것
  • Symbolic Address : 프로그래머는 메모리 저장 시 변수 이름에 저장하도록 하는데, 이 변수 이름을 의미
  • Symbolic Address -> Logical Address -> Physical address
    Logical Address -> Physical address 로 넘어가는 시점이 언제일까?

*주소 바인딩 (Address Binding)

- Compile time binding

  • 물리적 메모리 주소(physical address)가 컴파일 시 알려짐
  • 시작 위치 변경시 재컴파일
  • 컴파일러는 절대 코드(absolute code) 생성

- Load time binding

  • Loader의 책임 하에 물리적 메모리 주소 부여
  • 컴파일러가 재배치가능코드(relocatable code)를 생성한 경우 가능

- Execution time binding (= Run time binding)

  • 수행이 시작된 이후에도 프로세스의 메모리 상 위치를 옮길 수 있음
  • CPU가 주소를 참조할 때마다 binding 점검 (address mapping table)
  • 하드웨어적인 지원이 필요 (e.g., base and limit registers, MMU)

*Memory-Management Unit (MMU)

- MMU (Memory-Management Unit)

  • logical address를 physical address로 매핑해주는 하드웨어 장치

- MMU scheme

  • 사용자 프로세스가 CPU에서 수행되며, 생성하는 모든 주소값에 base register (=relocation register)의 값을 더함

- user program

  • logical address만을 다룬다.
  • 실제 physical address를 볼 수 없으며, 알 필요가 없다.

*Dynamic Relocation : 물리적 메모리로 매핑 과정

  1. CPU가 logical address 346번지를 요청한다.
  2. MMU는 relocation register (프로그램의 physical address 시작점)에 논리적 주소를 더한
    physical address 위치에 매핑시킨다.
  3. limit register는 physical address의 최대치를 고려하여, 요청 logical address의 최대치를 제한둔다.
    (이로써 고의로 최대 physical memory 위치 넘는 요청 등 악의적인 시도도 막을 수 있음)

*Hardware Support for Address Translation : 예외처리

  1. CPU가 logical 주소 요청
  2. MMUlimit register를 넘는지 확인한다.
  3. limit register를 넘는다면 trap이 걸린다.
  4. trap이 걸리면 하던 일을 멈추고 CPU 제어권이 운영체제로 넘어간다.
  5. 운영체제는 trap이 왜 걸렸는지 파악 후, 그에 대한 응징을 한다.
  6. trap이 걸리지 않는다면 정상적으로 physical memory에 매핑시켜 CPU에 전달한다.
Comments