멀티 태스킹 : 단일 CPU에서 여러 응용 프로그램의 병렬 실행을 가능케 하는 시스템
복수의 프로그램의 실행 흐름을 잘게 쪼게서 Switching 하는 방식으로 실행되는 것으로
시분할 시스템과 비슷한 실행 방식(사용자 경험으로는 동시에 실행되는 것처럼 보임)
위의 그림으로 이해하자면 파일 IO가 일어날 때 대기하는 시간들을 쪼개어
다른 Application 실행에 사용하는 실행 방식
멀티 프로그래밍 : 최대한 CPU를 많이 활용하도록 시간대비 활용도를 높히는 방식
응용 프로그램은 온전히 CPU(연산)를 쓰기 보다,
작업(IO) 사이에 다른 작업을 중간에 필요로 하는 경우가 많음
(파일 IO 등의 대기시간을 활용하여 다른 작업을 실행하여 실행 시간을 줄임)