프로그램 : 보조 기억 장치에서 실행되기만을 기다리는 정적인 데이터의 집합임
프로세스 : 운영체제로부터 시스템 자원을 할당받는 작업의 단위로 메모리에 올라와 실행되고 있는 프로그램을 의미
프로세스는 다음과 같은 자원을 할당받음
프로세스 특징
스레드 : 프로세스가 할당받은 자원을 이용하는 실행의 단위이자, 프로세스 내에서 실제로 작업을 수행하는 주체.
스레드 특징
레지스터 : 프로세서 안에서 자료를 보관하는 아주 빠른 기억 장소. 일반적으로 현재 계산을 수행 중인 값을 저장하는 데 사용됨
multi thread에서는 각각의 thread가 자신의 PC값을 TCB(Thread Control Block)에 저장을 합니다(multi thread에서는 각각의 thread가 독립적인 PC값을 가지고 있어야 합니다). 그 이유는 한 process 내에서도 thread 사이에 context switching이 일어나는데, TCB에 code address(PC)가 저장되어 있어야 해당 쓰레드가 어느 코드 영역까지 진행했는지를 기억하여 그 다음 코드부터 실행을 할 수 있기 때문입니다.
예를 들면 thread a 에서 thread b로 context switch가 일어나면, 현재의 PC register에 저장되어 있는 값을 thread a의 TCB에 저장을 하고, thread b의 TCB의 PC값을 불러와 PC register에 저장을 합니다. CPU는 PC register가 새롭게 가리키는 thread b의 code영역, 즉 thread b 내에서 다음에 실행해야 할 명령의 주소값(PC)을 참조하여 실행을 하게 되는 것입니다.
참고