연속 메모리 할당
이란 프로세스에 연속적인 메모리 공간을 할당하는 것을 말한다.
스와핑
이란 현재 사용되지 않는 프로세스들을 보조기억장치의 일부 영역으로 쫒아내고 그렇게 생긴 빈 공간에 새 프로세스를 적재하는 것을 말한다.
free
,top
명령어를 통해 확인할 수 있다.
예상하지 못하게 사용자가 필요한 만큼의 메모리를 프로그램 동작하는 중에 할당 받고자 할때 사용되는 방법이 메모리 동적 할당이다.
동적 할당된 메모리는 힙 영역에 malloc 과 free를 사용하여 할당되고 해제된다.
프로세스는 메모리의 빈공간에 할당되어야 한다.
이때 메모리 할당에는 3가지 방법이 있다.
메모리가 그림처럼 있다고 가정하자.
1. 최초 적합 (first fit)
운영체제가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식이다.
장점 : 검색 최소화, 빠른 할당
2. 최악 적합 (worst fit)
운영체제가 빈 공간을 모두 검색해본 뒤, 적재 가능한 가장 큰 공간에 할당 하는 방식이다.
3. 최적 적합 (best fit)
운영체제가 빈 공간을 모두 검색해본 뒤, 적재 가능한 가장 작은 공간에 할당하는 방식이다.
최적 적합 방법으로 넣는게 외부 단편화가 가장 작게 생긴다.
4. NEXT-FIT
NEXT-FIT 이란 가장 마지막에 들어온 Best-Fit에 가장 근접하고 메모리 사이즈 맞는 곳을 찾아가는 것이다.
BEST-fit과 거의 같지만 차별점은 위치성과 적합성을 둘다 만족한다는 것이다.
앞서 프로세스를 연속적으로 메모리에 할당하는 3가지 방식을 설명했다. 하지만 앞서 말했던 방식들은 메모리를 효율적으로 사용하는 방법이 아니다.
이때 발생하는 문제가 외부 단편화
이다.
외부 단편화
란?
ref ) 최초적합, 최적적합, 최악적합
next-fit