[OS] Memory Allocation

Memory Protection

프로세스 내에는 메모리 관리를 위한 base 레지스터와 limit 레지스터가 존재한다. 프로세스가 할당받은 메모리 영역의 하한과 상한값을 기억하고 있는 소자이다. 이 값은 CPU 스케줄러가 프로세스를 선택할 때 디스패처가 적재한다.

Memory Allocation

메모리 할당 방법에는 크게 3가지로 나눌 수 있다.

First Fit

할당받아야할 메모리의 크기가 충분한 공간이 발견되면 바로 할당한다.

Best Fit

할당받아야할 메모리의 크기와 실제 할당받을 공간의 차이가 적은 공간에 할당한다.

Worst Fit

가장 큰 메모리 공간을 선택하여 할당한다.

Fragmentation

내부 메모리 단편화

프로세스가 필요한 메모리보다 더 많은 메모리 공간이 할당되는 것

외부 메모리 단편화

전체 메모리 중간중간에 사용하지 않는 메모리 공간이 생겨 총 여유 메모리 공간은 프로세스를 할당하기에 충분하지만 실제로는 할당할 수 없는 현상

Author: Song Hayoung
Link: https://songhayoung.github.io/2020/07/23/OS/memory-allocation/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.