프로세스 : 실행 중인 프로그램 (각각의 프로세스는 독립된 메모리 공간을 할당 받음)
CPU : 명령어를 실행하는 연산장치
메인메모리 : 프로세스가 CPU에서 실행되기 위해 대기하는곳
IO(input/output) : 파일을 읽고 쓰거나 네트워크의 어딘가 와 데이터를 주고 받는 것, 입출력 장치와 데이터를 주거나 받는 것
단일 프로세스 시스템 : 한 번에 하나의 프로그램만 실행됨
→ CPU 사용률이 좋지 않음
해결책 : 프로세스는 한번 CPU를 사용할 때, 아주 짧은 시간(quantum)만 CPU에서 실행되도록 설계, 이를 멀티태스킹 이라고 한다.
→ 프로세스의 응답 시간을 최소화 시키는 것을 목적으로 한다.
이를 해결하기 위해서 스레드를 사용하게 되었다.
하나의 프로세스가 동시에 여러 작업을 실행하는 것을 목적
싱글코어 CPU에 싱글 스레드 프로세스 두 개 → 멀티태스킹
싱글코어 CPU에 듀얼 스레드 프로세스 한 개 → 멀티태스킹, 멀티스레딩
듀얼코어 CPU에 싱글 스레드 프로세스 두 개 → 멀티프로세싱
듀얼코어 CPU에 듀얼 스레드 프로세스 한 개 → 멀티스레딩, 멀티프로세싱
듀얼코어 CPU에 듀얼 스레드 프로세스 두 개 → 멀티태스킹, 멀티스레딩, 멀티프로세싱