(50) Variable Partition Memory Allocation & Dynamic Storage Allocation (Main Memory)
### Variable Partition Memory Allocation ###
< Variable partition >
: 메모리의 가변 크기의 partitions에 process를 할당하는 것이다.
(process가 할당 될 때 process의 크기를 보고 partition을 할당하는 것)
=> 각 partition에는 정확히 하나의 process가 포함될 수 있다.
: internal fragmentation 문제는 해결 but external fragmentation문제는 발생 할 수 있다.
: 효율성을 위한 다양한 partition 크기(주어진 process 요구에 따라 크기 조정)
: Hole은 사용 가능한 메모리 block이다.
(다양한 크기의 hole이 메모리 전체에 흩어져 있다)
: process가 도착하면 process를 수용 할 만큼 큰 hole에서 메모리가 할당 된다.
: process 종료는 해당 partition을 해제하고 인접한 free partition을 결합한다.
< Fragmentation in variable partition >
### Dynamic Storage Allocation ###
: speed 및 storage allocation측면에서 Worst-fit 보다 First-fit, Best-fit이 더 적합하다.
- < First-fit allocation >
: 할당가능한 첫 번째 hole(available partition)에 할당한다.
: search 시간이 짧다
- < Best-fit allocation >
: 할당 가능한 것 중에 가장 딱 맞는 hole을 할당한다.(전체 목록을 search해야 한다.)
: 가장 작은 leftover hole(남는 부분) => memory 낭비가 적다.
: search 시간이 길다.
- < Worst-fit allocation >
: 가장 큰 hole을 할당한다.(전체 목록을 search해야 한다.)
: 가장 큰 leftover hole(남는 부분)이 생긴다.