본문 바로가기

운영체제

메모리 관리 1 - 주소 바인딩

728x90
반응형

Goal

  • 주소 종류(Logical / Physical / Symbolic address)에 대한 이해
  • 프로그래머에 의해 작성된 코드가 어떤 과정을 거쳐 물리 메모리 주소로 매핑 되는지 그 과정을 설명할 수 있다.

주소의 종류

Logical address

  • 프로세스마다 독립적으로 갖는 공간
  • 논리적인 주소 체계로, 0번지를 시작으로 상대적인 주소 값을 갖는다.
  • CPU에서 인식하는 주소 체계이다.
  • virtual / relative / relocatable address 라고도 한다.

 

Physical address

  • 실제 물리적인 메모리 위치를 식별하는 주소
  • absolute address 라고도 한다.

 

Symbolic address

  • 변수나 함수와 같이 코드에서 사용하는 상징적인 이름을 주소로 사용하는 방법 => 프로그래머가 이해하기 쉽다.

 

주소 바인딩(address binding)

주소 바인딩이란, 한 주소 공간에서 다른 주소 공간으로 매핑하는 과정을 말한다.

 

어느 타이밍에 주소 바인딩이 이루어지는 지에 따라 compile time / load time / run time address binding 으로 나눈다.

 

compile time address binding

  • 컴파일 시간(compile time)에 물리 주소를 결정하는 것으로, 실행 파일에 물리 주소를 포함시킨다.
  • 논리 주소와 물리 주소가 같다. (logical address = physical adress)

 

프로그램에 절대(absolute) 주소가 포함 되어 있어 프로세스를 로드하는 것이 빠르지만, 생성된 주소 공간이 다른 프로세스에 의해 점유되어 있을 경우 충돌 할 수 있기 때문에 프로그램을 다시 컴파일 해야 하는 상황이 생긴다.

이러한 이유로 다중 프로그래밍이 가능한 현대 OS 환경에서는 실효성이 떨어져 사용되지 않는 방법이다.

 

load time address binding

  • 로드 시간(load time)에 논리주소를 물리주소로 바인딩하는 하는 것
  • loader에 의해 재배치 가능한(relocatable) 주소가 절대(absolute) 주소로 변환된다.
    1. 컴파일러가 주소를 결정할 수 없는 경우 symbolic address를 relocatable address로 변경
    2. 이후 로더(loader)에 의해 relocatable address가 absolute address로 변환됨

 

run time address binding

  • 실행 시간(run time)에 논리 주소를 물리주소로 바인딩하는 것
  • 현대 OS는 대부분 이 방식을 사용
    • 한 메모리 세그먼트에서 다른 메모리 세그먼트로 실행 중에 이동하는 것이 가능하려면 런타임까지 바인딩을 지연 시켜야한다.
  • MMU(Memory Management Unit) 장치에 의해 논리 주소를 물리 주소로 변환한다.

 

*relocatable code : 컴파일러 또는 어셈블러에 의해 생성되는 코드로, 컴파일 시간에 알 수 없는 경우 생성된다.

컴파일러가 symbolic code를 relocatable code로 변환 한다. 재배치 가능한 상대 주소를 사용한다.

<-> absolute code

 

전체적인 흐름을 설명하자면

symbolic address -> relocatable(logical) address -> absolute(physical) address

  • 컴파일을 거쳐 symbolic address를 relocatable address로 변환
  • 실행 시간에 MMU에 의해 relocatable address가 absolute address로 변환

 

MMU(Memory Management Unit)의 역할

MMU는 CPU가 메모리에 접근하는 것을 관리하는 컴퓨터 하드웨어 부품이다.

가상 메모리 주소를 실제 메모리 주소로 변환하며, 메모리 보호, 캐시 관리, 버스 중재 등의 역할을 담당한다.

 

MMU의 역할

MMU는 페이지를 기본 단위로 가상 주소를 실제 물리 주소로 매핑 시키는 역할을 한다.

변화 과정에서, TLB와 Page Table이 사용된다.

 

TLB : 캐시 역할. 자주 사용되는 페이지 저장

Page Table : 물리 주소와 연관시킬 수 있는 페이지가 저장되어 있는 자료구조

 

 

References

www.youtube.com/watch?v=lkVc4DZU2p8

www.youtube.com/watch?v=_kPCbBGRl1o

728x90
반응형