본문 바로가기

Study/운영체제

Chapter#13 Address Translation

반응형

Chapter#13 Address Translation

- Address Translation

- Address Translation Techniques

 - Dynamic Relocation

 - Segmentation ( #14 )

 - Paging ( #15~16 )


Address Translation

각 프로세스는 private virtual address space를 가짐

physical memory는 모든 프로세스가 공유함

Address translation : virtual address를 physical address와 mapping한 것

 

Design Goal

Transparency : 프로그램은 메모리가 virtualized된지 알지 못함

Protection : 프로세스간 메모리 침범이 안되도록 OS에서 관리

Flexibility : 프로그램 작성이 더 쉬운 방식으로 시스템 만듦

 

언제 Address Translation이 되어야 하는가?

1. Compile Time : 컴파일러에 의해 만들어진 주소값이 physical address에 직접 mapped된 경우 (virtual address = physical address)

똑같은 주소값에 할당된 같은 프로세스는 충돌이 일어날 수 있다

2. Load Time : executables가 physical memory에 로드되었을 때 address translation 하는 경우

다른 프로세스 주소를 참조할 수 있다

3. Execution Time : executable이 CPU에 돌고 있을 때 address translation 하는 경우

load time의 call과는 다르게 virtualized되어있어 physical address접근할 때마다 OS에 의해 주소값 translation함

다만, cpu time이므로 엄청 느리다 (퍼포먼스 낮음)

 

Address Translation with Hardware : CPU 내의 H/W 디바이스(MMU : Memory Management Unit)가 관리


Address Translation Techniques


Dynamic Relocation ( Base and Bounds )

두 H/W(CPU) register 필요

- base register : 시작 주소 저장

- bound(or limit) register : physical memory의 길이

physical address = virtual addres + base
0 <= virtual address < bound

 

Starts running : 알맞은 physical 주소 찾기

Terminated : 메모리를 free시킴

Switch occurs : Saving/Storing base-bound pair

 

Dynamic Relocation의 문제점

virtualized space length가 제한되어있으나 실질적으로 엄청 크다.

즉, heap-stack 사이 space가 낭비된다


학교 강의를 토대로 개인 공부 목적으로 작성되어 오타가 및 오류가 있을 수 있으며, 문제가 될 시 삭제될 수 있습니다.

반응형

'Study > 운영체제' 카테고리의 다른 글

Chapter#17 Swapping  (0) 2021.12.10
Chapter#16 Paging Advanced  (0) 2021.12.09
Chapter#15 Paging  (0) 2021.12.09
Chapter#14 Segmentation  (0) 2021.12.08
Chapter#12 Virtual Memory  (1) 2021.12.08