multiprogramming – 멀티프로그래밍
멀티프로그래밍은 병렬처리의 초보적인 형태로서, 여러 개의 프로그램들이 단일 프로세서 상에서 동시에 실행되는 것이다. 그러나, 그 컴퓨터에는 오직 단한 개의 프로세서만이 존재하기 때문에, 진정한 의미로는 여러 개의 프로그램이 동시에 수행된다고 볼 수는 없다. 다만, 운영체계의 통제하에, 한 프로그램이 일부 수행되고 나서, 또다른 프로그램이 일부 수행되는 식으로 진행되는 것이다. 그러나, 사용자에게는 모든 프로그램이 마치 동시에 수행되는 것처럼 보인다. 만약, 컴퓨터가 일정 시간 후에 인터럽트를 일으킬 수 있는 능력을 가지고 있다면, 운영체계는 각 프로그램을 주어진 길이만큼의 시간동안 실행시킨 후, 다시 제어권을 회수한 다음, 또다른 프로그램을 일정시간동안 수행시키는 식으로 진행할 수 있다. 그러나, 컴퓨터에 이러한 기능이 없다면, 운영체계는 그 프로그램이 결국 제어권을 운영체계에게 되돌려 줄 것이라는 확신성은 없지만, 선택의 여지없이 일정수준의 기대치동안 만큼 한 프로그램의 실행을 시작하게 된다. 만약 그 컴퓨터가 메모리 보호 능력을 갖추고 있는 컴퓨터라면, 한 프로그램 내의 버그가 다른 프로그램의 실행에 보다 적은 영향을 미칠 것이다. 메모리 보호 능력이 없는 시스템에서는, 한 프로그램이 다른 프로그램, 심지어는 운영체계에 할당되어 있는 메모리의 내용까지도 변경시킬 수 있다. 시스템이 불시 정지되는 것은 파괴적인 원인뿐 아니라, 여러 개의 프로그램 중 어느 프로그램에 명백한 잘못이 있는지를 디버깅하기 매우 어려운 경우 때문이기도 하다.