초기 컴퓨터 시스템에서는 한 번에 한 사용자만이 시스템을 독점하여 사용할 수 있엇기 때문에 모든 자원을 전용하여 사용하였다. 단일 사용자 연속 기억장치 할당은 모든 프로그램의 크기는 주기억장치의 용량을 초과할 수 없으므로 용량을 초과하는 프로그램은 실행할 수 없으며, 한 순간에 오직 1명의 사용자만이 주기억장치를 전용하여 사용하므로 다른 모드 사용자는 기다려야 하는 단점이 있는 방법이다.

단일 사용자 기억장치 할당 방식의 장점은 구현이 매우 단순하며 이해하기 쉽지만 단점으로는 기억장치 및 자원 낭비가 심하며, 입출력을 수행하는 동안 CPU를 사용하지 않고 있어 CPU 시간의 낭비가 크다.

[ 그림 4-7 ] 에서는 해당 번지만큼의 영역만 사용자가 사용할 수 있으며, 운영체제와 사용자 프로그램의 경계는 경계 레지스터(bound register)로 접근을 제한할 수 있다. 만약 운영체제 영역을 침범했을 경우 운영체제 관리자는 인터럽트를 발생시키고 제어권을 운영체제에게 넘긴다.

(1) 상주 모니터

초기 일괄 처리 방식에서는 CPU 유휴 시간(idle time, 휴지 시간)을 극복하기 위해 작업 묶음들을 자동적으로 처리할 수 있는 자동 작업 순서화가 가능한 상주 모니터(resident moniter)라 불리는 초기의 운영체제가 나오게 되었다.

주기억장치에서 OS가 인터럽트를 제어하고 시스템 호출이나 오류를 처리하기 위한 부분을 상주 모니터(resident monitor)라 하며, 상주 모니터 기법은 단일 사용자를 위한 주기억장치 관리 기법 중 하나의 기술이며, 주기억장치는 상주 모니터와 사용자 부분 2개로 나누어져 관리되며, 사용자 부분과의 경계에는 차폐(경계) 레지스터(fence(bound) register)를 두어 관리된다.

상주 모니터는 어떤 작업 또는 프로그램이 다음에 실행되어야 할 것인가에 대한 정보를 유지하고 있다. 상주 모니터의 기억 장소에서의 위치는 인터럽트 벡터(interrupt vector)의 위치에 영향을 받으며, 일반적으로 기억장치의 저위(low bound)에 둔다. 상주 모니터의 특징은 [ 표 4-2 ] 와 같다.

(2) 오버레이(중첩) 기법

초기 운영체제 시스템에서의 사용자들은 기억장치의 크기보다 큰 프로그램을 수행할 수 없었다. 이를 해결하기 위한 기법이 오버레이(overlay) 기법이다. 중첩(overlay) 기법은 디스크에 프로그램을 유지하고 운영체제에 의해서 기억장치를 교체하는 기법으로써 프로그램을 몇 개의 조각으로 분할하여 프로그램이 시작되면 각 단계별로 차례로 적재하여 실행함으로써 여러 단계를 거치면서 커다란 프로그램을 실행하는 방법이다.

<aside> ❗ TIP. 오버레이 기법(중첩, overlay)

</aside>