오늘은 메모리 관리기법에 대해 공부해보았다.
운영체제가 컴퓨터 시스템에서 사용되는 물리적인 메모리(RAM)를 효율적으로 할당하고 관리하는 기법을 말한다.
주기억장치(메모리)에 적재할 다음 프로세스의 반입시기(When)를 결정하는 기법
요구반입기법 : 다음에 실행될 프로세스가 참조 요구가 있을 때 적재한다.
예상반입기법 : 시스템의 요구를 예측해 미리 메모리에 적재하는 방법. 요구되는 페이지 이외 다른 페이지도 함께 적재한다.
디스크에 있는 프로세스를 주기억장치의 어느 위치(Where)에 저장할 지 결정하는 기법
최초 적합 First Fit
프로세스가 적재될 수 있는 가용 공간 중에서 첫 번째 분할에 할당하는 방식
최적 적합 Best Fit
가용 공간 중에서 크기가 가장 비슷한 공간을 선택해 프로세스를 적재하는 방식. 공백이 최소화 되는 장점이 있다.
최악 적합 Worst Fit
가용 공간 중에서 가장 큰 공간에 할당하는 방식
실행해야 할 프로세스를 주기억장치에 어떤 방법(How)으로 할당할 것인지 결정하는 기법
실행을 위한 각 프로세스를 주기억장치 공간 내에서 인접되게 연속해서 저장하는 방법.
하나의 프로세스를 여러 조각으로 나누어 주기억장치 공간 내에 분산하여 배치하는 기법. 주로 가상기억장치에 사용한다.
재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스(Who)를 제거할지 결정하는 기법
FIFO : 가장 먼저 들어와 가장 오래 있던 페이지를 교체
LRU : Least Recently Used. 가장 오랫동안 사용되지 않은 페이지를 교체. 지역성의 원리에 따라 최근 참조된 페이지는 앞으로도 그럴 가능성이 높다는 전제로 구현된 알고리즘이다.
LFU : Least Frequently Used. 사용 횟수를 확인해 참조 횟수가 가장 적은 페이지를 교체.
OPT : OPTimal Replacement. 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체. 가장 효율적.
NUR : Not Used Recently. LRU와 비슷. 최근 사용하지 않은 페이지를 교체
SCR : Second Chance Replacement. 가장 오래 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지한다. FIFO의 단점을 보완한다.
분할된 주기억장치에 프로세스를 할당하고 반납하는 과정에서 사용되지 못하고 낭비되어 발생한다.
내부 단편화
분할된 공간에 프로세스를 적재한 후 남은 공간이다.
고정분할할당방식이나 페이징기법 사용 시 발생한다.
Slav Allocator, 통합-압축으로 해결한다.
외부 단편화
할당된 크기가 프로세스 크기보다 작아서 사용하지 못하는 공간이다.
가변분할할당방식이나 세그먼테이션 기법 사용 시 발생한다.
버디메모리 할당, 통합-압축으로 해결한다.