기억장치의 사용중인 부분과 미사용중인 부분을 체크해서 프로세스에게 할당하거나 회수하는 역할
일반적으로 주기억장치와 가상기억장치 관리
2. 호출기법
다음에 수행될 프로그램과 데이터를 보조기억장치에서 언제 기억장치로 적재할 것인지를 결정하는 전략
요구반입
프로그램이나 데이터에 대한 요구가 발생하면 주기억장치로 로드하는 방법
예상반입
실행 중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예측하여 적재하는 기법
3. 배치기법
보조기억장치로부터 반입된 프로그램이나 데이터를 주기억장치의 어느 곳에 적재시킬 것인가를 결정하는 것
적재할 위치를 정하는 전략
3.1 배치기법 종류
최초 적합 (first-fit)
주기억장치 내의 공백 중 프로그램이나 데이터가 들어갈 수 있는 크기의 영역 중에서 작업을 수용할 수 있는 첫 번째 공백에 배치
최적 적합 (best-fit)
주기억장치 내의 공백 중 프로그램이나 데이터가 들어갈 수 있는 크기의 영역 중에서 적재될 재료의 메모리 크기와 가장 인접한 크기의 공간을 골라 배치하는 방법
단편화 (적재 후 분할영역의 남은 공간) 이 가장 작다
최악 적합 (worst-fit)
주기억장치 내에 가장 큰 공백에 프로그램이나 데이터를 배치
단편화가 가장 많이 생기는 배치방법
4. 교체기법
새로운 프로그램이나 데이터를 보조기억장치의 가상 메모리로부터 주기억장치에 배치하려고 할 때 주 기억장치의 모든 영역이 사용 중인 상태이면 이미 사용하고 있는 영역 중에서 교체하여 사용하는 전략
4.1. 교체기법 종류
OPT (OPTimal replacement, 최적 교체)
앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
예측이 맞지 않는 경우가 발생하므로 실현 가능성이 가장 낮다
FIFO (First In First Out)
가장 먼저 들어온 페이지를 먼저 교체시키는 방법
각 페이지가 주기억장치로 들어올 때 마다 타임 스탬프(time-stamp)를 찍어 그 시간을 기억하고 있다가 페이지 교체시 사용
LRU (Least Recently Used)
최근에 가장 오랫동안 사용되지 않은 페이지 교체
각 페이지에 계수기 (Counter)를 두어 교체시점에서 가장 오래 전에 사용된 페이지 교체
LFU (Least Frequently Used)
사용 횟수가 가장 적은 페이지를 교체
NUR (Not Used Recently)
최근에 사용하지 않은 페이지를 교체하는 기법
페이지마다 2개의 하드웨어 비트(호출 비트, 변형 비트)를 사용
호출 비트 : 최근 참조 여부 확인
변형 비트 : 최근 변형 여부
가장 최근에 참조도 안 되고 변형도 안 된 페이지를 가장 우선적으로 교체
5. 주기억장치 할당
프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게 할당 할 것인지
연속 기억장치 할당과 불연속 기억장치 할당으로 나눌 수 있다
주기억장치 할당 기법
5.1 연속 기억장치 할당
프로그램을 주기억장치에 연속으로 할당하는 기법
프로그램을 위한 빈 공간이 연속적이여야 하므로 효율이 떨어진다
5.1.1 단일분할 할당기법
스와핑과 오버레이 기법 등을 통해 구현할 수 있다
5.1.2 다중분할 할당기법
고정분할과 동적 분할 기법을 통해 메모리를 프로세스에게 할당하는 방법
5.2 불연속 기억장치 할당
분산 할당기법
하나의 프로그램이 여러 개의 블록이나 조각으로 나뉘어 기억장치 내의 사용 가능한 공간에 분산 배치되는 기법이다
메모리 사용의 효율성이 증가되는 기법으로, 가상기억장치 관리기법에서 주로 사용한다
6. 단일 사용자 연속 기억장치 할당
주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한 순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 방법
기계의 모든 자원은 그 사용자가 마음대로 사용할 수 있다
프로그램의 크기는 주기억장치의 용량보다 클 수 없지만 스와핑, 오버레이 등으로 주기억장치보다 큰 사용자 프로그램 실행 가능
6.1 특징
가장 단순한 기법. 초기의 운영체제에서 많이 사용
경계 레지스터 (boundary register)를 사용하여 사용자 영역에 있는 사용자 프로그램이 운영체제 영역에 접근하지 못하도록 한다
프로그램의 크기가 작을 경우 사용자 영역의 사용효율이 떨어질 수 있다
스와핑, 오버레이 기법을 사용하여 초기에 주기억장치보다 큰 사용자 프로그램을 실행할 수 없다는 문제점을 해결 가능