❓ Process란?
Process란 컴퓨터에서 실행중인 모든 프로그램을 Process라고 한다.
process 는 Thread 개념이 등장하기 전 CPU의 처리 단위였다.
Process는 최소 1개의 Thread로 구성이 된다.
Process 간의 컨텍스트 스위칭은 무겁다
Process 간의 메모리 공유는 어렵다.
❓ Thread란?
한 Process 안에서 여러 작업을 동시에 처리하기 위해서 등장함
Thread란 Process를 구성하는 단위로
현재 CPU 처리의 기본 단위로 사용된다.
한 Process 안의 Thread 끼리의 컨텍스트 스위칭은 가볍다.
한 Process 안의 Thread는 같은 메모리 영역을 사용하기 떄문에 데이터 공유가 쉽다. ( 하지만 Stack과 Program counter는 각각의 Thread가 고유한 영역으로 가진다. )
❓ 멀티태스킹이란?
🟦 개념
기존의 CPU는 Process를 처리하다가 Process가 IO 과정에 들어가면 다른 Process를 처리했다.
멀티태스킹은 CPU time 안에서 Process를 효율적으로 사용하기 위해 CPU에서 여러 Process를 빠르게 바꿔 가며 처리하는 방식을 의미한다.
멀티태스킹은 여러 프로세스와 여러 스레드가 아주 짧게 쪼개진 CPU time을 나눠 갖는 것
🟦 단점
1. 프로세스의 컨텍스트 스위칭은 무거운 작업이다.
2. 프로세스 간의 데이터 공유가 까다롭다. ( 프로세스 들은 독자전인 메모리 공간을 사용함 )
❓ 멀티스레딩이란?
🟦 개념
하나의 프로세스가 동시에 여러 작업을 실행하는 것
❓ 멀티프로세싱이란?
🟦 개념
두 개 이상의 프로세서나 코어를 사용하는 것