“CPU를 추상화”
프로세스 내에서 실행되는 흐름의 단위
쓰레드는 자신만의 고유한 쓰레드 ID, 프로그램 카운터(PC), 레지스터 집합, 스택을 가지고 코드, 데이터 및 OS 리소스는 프로세스 내의 다른 쓰레드와 공유
쓰레드마다 고유한 자원(PC, 레지스터 집합, 스택)을 가지고 있는 이유는 독립적인 함수 호출을 가능하게 하여 독립적인 실행 흐름을 추가하기 위해서이다.
프로세스와 쓰레드의 주요 차이점은 동일한 프로세스 내의 쓰레드는 공유 메모리 공간에서 실행되는 반면 프로세스는 별도의 메모리 공간에서 실행된다.
스레드는 일반 프로세스에 비해 context-switching을 수행할 때 시간이 적게 걸린다. 왜냐하면 프로세스 내의 다른 스레드와 파일 디스크립터, 파일 및 시그널 정보에 대한 주소 공간을 공유하기 때운이다.
코어(core): cpu안에 물리적인 계산을 실제로 진행하는 유닛