본문 바로가기
about COMPUTER/컴퓨터 시스템

# 메모리 관리

by saniii 2020. 11. 24.

메모리 관리

# Logical vs. Physical Address

Logical address (=virtual address //가상 주소)

프로세스마다 독립적으로 가지는 주소 공간

각 프로세스마다 0번지부터 시작

CPU가 보는 주소는 logical address

Physical address

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

 

** 주소 바인딩: 주소를 결정하는 것 : Symbolic Address Logical Address Physical address

*Symbolic Address : 함수, 변수의 이름을 이용하여 접근하는 방식을 뜻함/ 이 화살표!! 이 시점이 언제인가? (next page)

 

# 주소 바인딩 (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).

>>CPUlogical address를 바라보고 있음!

 

# Memory-Management Unit (MMU)

+ MMU (Memory-Management Unit) // 여기서 실제 주소로 바뀜

logical address(CPU에서 발생한 주소)physical address(MMU를 통해 바뀐 주소)로 매핑해 주는 Hardware device

+ MMU scheme

사용자 프로세스가 CPU에서 수행되며 생성해내는 모든 주소값에 대해 base register (=relocation register)의 값을 더한다

+ user program

logical address만을 다룬다

실제 physical address를 볼 수 없으며 알 필요가 없다

 

댓글