2 멀티 프로그래밍이란? #
트랜지스터로 제작된 2세대 컴퓨터들은 현재의 작업이 테이프나 다른 입출력이 완료되기를 기다리고 있을 때 CPU도 단순히 입출력이 끝날 때가지 대기하고 있었다. 복잡한 과학 계산의 CPU 바운드 작업이므로 입출력이 빈번하지 않아서 CPU 대기시간은 그다지 문제가 되지 않았다. 그러나 업무용 데이터 처리에서는 전체 시간의 80%정도가 입출력 대기이므로 CPU 대기시간을 줄이기 위한 대책이 필요했다.
이런 배경으로 출현한 방법이 멀티프로그래밍 기법이다. 3세대 컴퓨터는 다음과 같이 메모리를 나누어 여러 프로그램을 메모리에 로드하여 대기시간 동안 다른 프로그램이 동작하도록 하였다. 아래는 메모리를 나누고 3개의 작업이 있는 것을 나타낸다.
많은 작업이 메모리에 로드되면 CPU는 거의 쉬지 않고 100%의 사용률을 보일 것이다. 이 때 필요한 것은 여러 작업이 동시에 안전하게 메모리에 있게 하고, 각 작업이 서로 간섭하지 않게 하는 특별한 하드웨어다. 360을 비롯한 여러 3세대 컴퓨터들은 이러한 하드웨어를 갖추고 있었다.