multi thread와 PC, PC register, context switching에 대해서 이 노트와 https://www.inflearn.com/questions/489172 를 참조하여 새롭게 정리해 보았는데 제가 이해한 것이 맞는지 한번 보아주십시오. 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)을 참조하여 실행을 하게 되는 것입니다. ▶ multi thread concurrency: thread 사이에 context switching을 하다가, 또한 process 사이에서도 context switching을 하는 것입니다. 예를 들면 process 1과 process 2에 각각 thread a, thread b가 있다고 하면, process 1의 thread a에서 process 2의 thread b로 context swtiching이 일어나면, PC register의 값을 process 1 thread a의 TCB에 저장을 하고, process 2 thread b의 TCB의 PC값을 불러와 PC register 값에 저장을 하면, CPU는 PC register가 가르키는 process 2 thread b의 code 영역을 참조하여 실행을 하게 되는 것입니다.