오버레이

프로그램이 너무 커서 주기억 장치의 번지 공간에 한번에 모두 들어갈 수 없는 경우에 프로그램을 분할하여 당장은 불필요한 루틴(routine)들을 보조기억 장치에 넣어 두고, 필요에 따라 이것들을 주기억 장치의 번지 공간의 동일한 장소에 읽어들여서 이용하는 기법이다. 또 루틴이 이 기법에 따라 다루어지는 것을 ‘루틴은 오버레이된다’라고 한다. 오버레이되는 루틴들은 동일한 번지를 공유하게 되므로 동시에 번지 공간에 존재할 수 없으며, 또 서로 다른 루틴을 사용할 수 없다. 또한 다중 프로그래밍(multiprogramming)의 경우에는 처리되는 프로그램을 세그먼팅(세그먼트 분할)하여 오버레이 되게 함으로써 주기억 장치를 효율적으로 이용할 수 있다. 오버레이는 사용자 자신이 기억 관리를 하는 방식에 해당하는데, 현재 많은 시스템에서는 가상기억 방식에 의해 충분히 큰 번지 공간(주소 공간)이 주어지기 때문에, 오버레이 기법의 대상이 되는 프로그램이 작성되는 경우는 그다지 많지 않다