: 프로그램이 실행된 것
동시에 실행 되는 것처럼 보이기 위해서 실행단위는 시분할로 cpu를 점유하며 context switching을 한다
: 한 프로세스 내에서 나뉘어진 하나 이상의 실행 단위
스레드는 자원공유를 하기때문에 공용 자원은 두고 각 스레드에서 사용하는 자원만 가져오게 된다.
한 어플리케이션에 대한 작업을 동시에 하기 위해서는 2가치 처리방식(멀티 프로세스, 멀티 스레드)이 있다
: 각 프로세스는 독립적으로 여러개 실행됨
: 프로세스 내에서 분리해 여러 스레드로 나뉘어 실행단위가 나뉘어짐(자원을 공유함)
"멀티 프로세스를 더 많이 사용한다"
: 멀티 스레드는 여러 스레드들이 서로 긴밀하게 연결되어 있어 한 스레드에 문제가 생기면 전체 프로세스에 영향이 가게 된다.
: 하드웨어 측면에서 실행 단위를 병렬적으로 처리할 수 있도록 여러 프로세스가 있는 것
- 용어 정리
실행단위: cpu core에서 실행하는 하나의 단위(프로세스와 스레드를 포괄하는 개념)
프로세스: 하나의 스레드만 가지고 있는 단일 스레드 프로세스
동시성 - 한 순간에 여러가지 일이 아니라 여러가지 일이 짧은 전환으로 여러가지 일을 동시에 처리하는 것처럼 보이는 것