CPU의 성능을 높이는 가장 좋은 방법은 CPU의 클록을 높이거나 캐시 크기를 늘리는 것이다.

그러나 CPU의 클록을 높이면 발열문제, 캐시크기를 늘리면 비용문제가 발생한다.

대안으로 CPU의 핵심 기능을 가진 코어를 여러개 만들어 동시에 실행 가능한 명령어 개수를 늘렸다.

병렬처리

동시에 여러 개의 명령을 처리하여 작업의 능률을 올리는 방식을 말한다.

여러개의 명령을 동시에 처리하는 병렬처리는 코어가 여러 개일 때 와 한 개일 때도 가능하다.

멀티 프로그래밍

하나의 코어가 여러 프로세스를 실행할 수 있는 것

단점 - CPU 사용시간이 길어지면 다른 프로세스는 대기하는 시간(응답 시간)이 길어진다.

멀티 태스킹

CPU가 작업을 짧은 시간 단위(퀀텀)로 하자.

프로세스의 응답시간을 최소화 하는데 목적이 있다.

코어에 대한 프로세스 또는 스레드 간 경합이 있어야한다. (컨텍스트 스위칭)

멀티 프로세싱

코어가 여러 개 있어서 여러 프로세스가 동시에 실행되는 것

멀티 스레딩

하나의 프로세스가 여러 작업을 동시에 여러작업을 실행하는 것이 목적

멀티-스레드 프로세스가 있는것