Real memory: 메인 메모리에 프로그램 전체가 포함된다.
프로세스의 메모리 관리 정보는 PCB의 Process control information에 저장된다.
![]() | ![]() |
|---|
External fragmentation 최소화, Compaction 줄이기

![]() |
|---|
| - Base Register: 프로세스의 프로그램 코드 시작 주소로 PCB의 시작 주소가 아니다. |
| - Relocation: Base Register + Relative address -> Physical address |
| - Bounds Register: 프로그램 코드 및 데이터의 마지막 주소 |
| -> Protection에 사용된다. |
| -> Relocation으로 얻은 Physical address가 Bounds Register 값보다 작거나 같으면 액세스가 가능하고, 크다면 Program interrupt가 발생한다. |
| - Fixed Partitioning, Dynamic Partitioning, Buddy System에 대해서 Relocation, Protection 문제의 해결이 가능하다. |
| - 프로세스를 실행하면서 한 명령씩 주소를 변환하는 방법이다. |
| -> 프로세스가 메인 메모리에 적재되는 시점에 모든 Relative address가 Physical address로 변환되어야 하는 것이 아니다. |
| - 메인 메모리에 여러 프로세스가 존재하더라도 한 번에 하나씩만 실행하기 때문에 Base Register와 Bounds Register는 하나씩만 필요하다. (Multiprogramming system) |
| -> 각 레지스터 값은 실행하는 프로세스가 교체될 때 바뀌는 것으로 메인 메모리에 적재될 때 바뀌는 것이 아니다. |

![]() | ![]() |
|---|
![]() |
|---|
| - Relative address != Logical address |
