user process의 영역을 virtual address space라고 한다. 그리고 application이 생각하는 address를 virtual address라고 한다.
Base register address + virtual address = physical memory address로 할당하는 방식
address translation : virtual address에서 physical address로 전환하는 것, hardware에서 이루어진다.
다른 partition으로 옮기려면 base register만 전환하면 된다.
multiprogramming degree : 한번에 동시에 동작할 수 있는 multiprogramming 수
degree는 partition의 수로 결정된다.
base register의 값을 정하는 것은 OS가, 전환하는 것은 hardware가 한다.
장점 : 구현, translation, context switch가 쉽다.
단점
Internal fragmentation : program의 크기가 어떻든간에 한 개의 partition을 할당하는데, 만약 사용공간이 적은 program이라면 낭비가 심해지며, 해당 남은 공간을 다른 process에게 할당해줄 수 없다. 이러한 남는 공간을 Internal fragment라고 한다.
partition size : 크기를 크게하면 fragment가 커지고, 작게 한다면 fragment는 작아지지만 큰 process는 들어가지 못하는 문제가 생긴다.
Improvement
partition을 동일한 크기가 아니게 나눈다.
First fit : 쭉 순회하며 해당 process가 들어갈 수 있는 처음 마주한 공간에 할당
금방 찾지만 internal fragment가 커질 수 있다.
Best fit : 해당 process와 internal fragment가 가장 적은 공간에 할당
internal fragment는 작지만 시간적으로 오래 걸린다.
Variable Partitions
OS가 특정 partition을 결정해두는 것이 아닌, 각 시점마다 가용한 memory 주소를 찾아 시작 주소와 끝 주소를 결정하는 방식