다중 프로그래밍 방식은 2개 이상의 프로그램을 주기억장치에 동시에 저장하고 하나의 CPU로 실행하는 방식을 말한다. 즉 다중 프로그래밍 시스템은 여러 프로그램이 동시에 실행되는 것과 같아 보인다. 그러나 실제로 여러 프로그램이 동시에 수행되는 것이 아니고 한 프로그램씩 순차적으로 돌아가면서 조금씩 수행되지만 CPU의 속도가 매우 빠르므로 우리가 보기에는 동시에 수행되는 것처럼 보일 뿐이다.
[ 그림 5.13 ]
전자적 장치인 중앙처리장치는 날로 고속화되고 그 처리 속도도 빨라지고 있다. 그러나 기계적인 동작이 따라야 하는 입출력 장치의 속도는 CPU의 속도에 비해 현저히 떨어지고 있다. 그러므로 다중 프로그래밍 방식에서는 하나의 프로그램이 주변장치의 처리를 기다리는 동안 다른 프로그램이 CPU에서 실행될 수 있게 함으로써 전체적인 시스템의 처리 효율을 높이는 것이다.
다중 프로그래밍 방식은 여러 개의 프로그램을 준비 상태에 두고 관리하며 다른 작업을 실행할 프로그램으로 선정하기 위한 기억장치 관리 기법과 CPU 스케줄링 기법이 필요하다. 여기서 실행할 프로그램을 선정하기 위한 기준을 우선순위(priority)라 한다. 다중 프로그래밍 방식에서 한 프로그램이 입출력 대기상태가 되면 다른 프로그램이 CPU를 사용할 수 있도록 전환하고, 입출려 동작이 끝나면 우선순위에 따라서 실행 가능한 프로그램 중에서 하나를 선정하여 실행한다. 우선순위는 일반적으로 작업을 요청한 시간과 입출력 동작의 시간, CPU 사용 시간 등을 고려하여 정할 수 있다.