면접 준비로 운영체제를 공부하던 중에 갑자기 몇가지 궁금한 점이 생겨버림
- 아니 PCB는 Process의 상태를 저장하고 복원하는데 쓰이는 자료구조인데, 만약에 같은 Process에 존재하는 Thread간에 Context Switching이 발생하는 경우에는 어떻게 상태를 추적할 것인가?
- 실행되는 작업의 최소 단위는 Process가 아니라 Thread라는 것을 보면 Context Switching의 실질적인 기준이 되는 것도 Thread 여야 되는 것 아닌가?
- 근데 PCB가 이러한 것들을 다 감당하는 자료구조인가?
그래서 검색해본 결과 TCB라는 새로운 자료구조를 알게되었음
Thread의 상태를 저장하는 자료구조
다음과 같이 PCB에 연결된 리스트에 존재함
Thread Context Switching이 발생하면
Thread A가 CPU 사용중
Thread A의 상태 정보를 TCB A에 저장
Thread A가 속한 Process A의 상태 정보 PCB A에 저장
Thread B가 속한 Process B의 상태 정보 PCB B 로드
Thread B의 TCB B 로드
Thread B가 CPU 사용
과 같은 과정이 실행된다고 한다 그리고 gpt한테 물어봤는데 Context Switching의 실질적인 기준이 되는것도 Thread가 맞다 함 아 근데 먼가 확실ㄹ하지 않고 애매한거 같아서 더 찾아보고 공부해바야 될듯