프로그램을 실행한다는 것은 프로그램을 구성하는 코드를 순서대로 CPU에서 연산하는 일인데 CPU 코어를 하나로 가정했을 때 하나의 프로그램 코드만 실행할 수 있었다.
이를 해결하기 위해 하나의 CPU 코어로 여러 프로그램을 동시에 실행하는 멀티태스킹 기술이 등장했다.
과거 하나의 CPU에 하나의 코어만 존재했을 때를 가정해보자.
실제로 우리가 두 프로그램이 동시에 실행되는 것 처럼 느끼는 것은 CPU가 하나의 코어만 있더라도 매우 빠르게 두 프로그램의 코드를 번갈아 수행하는 것이다.
이게 가능한 이유는 CPU가 초당 수십억 번 이상의 연산을 수행하기 때문!
(대략 0.01초, 10ms단위로 돌아가며 실행!)
CPU 코어가 둘 이상이고 실행하려는 프로그램이 A,B,C 세가지일 때 물리적으로 완전히 동시에 2개의 프로그램을 처리 할 수 있다.
따라서 멀티프로세싱 시스템은 하나의 CPU 코어만을 사용하는 시스템보다 동시에 더 많은 작업을 처리할 수 있다.
| 멀티프로세싱 | 멀티태스킹 |
|---|---|
| 여러 CPU(2개 이상의 코어)를 사용하여 동시에 여러 작업 수행 | 단일 CPU(단일 코어)가 여러 작업을 동시에 수행하는 것 처럼 보이게 함 |
| 하드웨어 기반으로 성능 향상 | 소프트웨어 기반으로 CPU 시간을 분할하여 각 작업에 할당 |
| 예) 다중 코어 프로세서를 사용하는 현대 컴퓨터 시스템 | 예) 현대 운영 체제에서 여러 애플리케이션이 동시에 실행되는 환경 |