thread의 PC register 질문
714
投稿した質問数 3
안녕하세요! Thread 강의를 수강하다가 PC register에 대한 질문이 있어서 남깁니다!
Process & Thread 강의에서 제가 이해한 바로는,
Multi Process에서는, CPU 내부에 있는 PC register에는 다음에 진행해야 할 Process의 코드 주소값이 저장되어 있다.
Multi Process & Multi Thread에서는, 각 Thread가 PC register를 가진다.
입니다. 제가 궁금한 점은
"Multi Thread에서는 각 Thread가 독립적인 PC register를 갖고 있다" 하셨는데(TCB에 저장), CPU가 가지는 PC register와는 구체적으로 어떤 차이가 있나요?
CPU의 PC register는 각 TCB에 적힌 여러 PC register 중, CPU가 지금 처리해야 할 TCB의 PC register를 들고 있는 것인가요?
PCB, TCB에는 각 프로세스, 쓰레드의 Context가 저장되는 곳인 것 같은데, 이 안에 PC register(다음 실행할 코드의 주소값) 또한 포함되어 있는 건가요?
"Multi Process, Single Thread에서, CPU가 가지고 있는 PC register는 다음으로 처리해야 할 Process의 코드 주소값(PC register)을 가지고 있는 것이고,
Multi Process, Multi Thread에서는, CPU가 가지고 있는 PC register는 다음으로 처리해야 할 Process 내부의 Thread의 코드 주소값(PC register)을 가지고 있다"
고 이해해도 될까요?
입니다!
回答 2
2
주말에 열심히 공부하시는 욱님 응원합니다.
답변 드릴게요
"Multi Thread에서는 각 Thread가 독립적인 PC register를 갖고 있다" 하셨는데(TCB에 저장), CPU가 가지는 PC register와는 구체적으로 어떤 차이가 있나요?
=> 제가 말로 설명 하다보니 조금 오해의 소지가 있는 늬앙스의 단어 선택을 한 것 같아요. PC register는 CPU가 가지고 있는것입니다., 각 thread는 pc register를 갖고 있는건 아닙니다.
CPU의 PC register가 thread1의 code영역에서 15번째 줄을(그냥 예시로) 가리키고 있었다고 해볼게요. 이 때, context switch가 발생하면, thread1의 15번째 줄을 가리키고 있다는 정보를 TCB에 저장 해둬야 다음에 돌아올 때 어디까지 진행됐는지 기억할 수 있잖아요.
이와같이 thread1, thread2 thread3는 각각 돌아가야할 위치(pc register가 가리켜야 할 위치)가 각기 다를거에요! 이를 "각 Thread가 독립적인 PC register를 갖고 있다" 라고 표현한 것 뿐입니다
CPU의 PC register는 각 TCB에 적힌 여러 PC register 중, CPU가 지금 처리해야 할 TCB의 PC register를 들고 있는 것인가요?
=> 네 맞습니다. 여러 TCB중에서 하나의 TCB가 "활성화"되면 CPU는 해당 TCB(지금 처리해야 할 TCP)를 참조하여 CPU가 세팅 됩니다.(해당 TCB의 PC register를 들고 있다고 생각하시면 돼요.)
PCB, TCB에는 각 프로세스, 쓰레드의 Context가 저장되는 곳인 것 같은데, 이 안에 PC register(다음 실행할 코드의 주소값) 또한 포함되어 있는 건가요?
=> 네 맞습니다.
"Multi Process, Single Thread에서, CPU가 가지고 있는 PC register는 다음으로 처리해야 할 Process의 코드 주소값(PC register)을 가지고 있는 것이고,
Multi Process, Multi Thread에서는, CPU가 가지고 있는 PC register는 다음으로 처리해야 할 Process 내부의 Thread의 코드 주소값(PC register)을 가지고 있다"
고 이해해도 될까요?=> 네 맞습니다. 잘 이해하셨네요!!
더 궁금하신 점 있으시면 올려주세요 ;) 화이팅
Open addressing을 사용할 때의 worst case
1
463
1
인터넷 계층과 네트워크 엑세스 계층
1
488
1
패킷이란
1
420
1
Linked list의 장점
1
649
1
노션 자료 이메일 잘못 입력했어요..
1
545
1
동기화 문제
1
501
2
프로세스 관련 질문
1
573
1
노션 전자 책 동영상 문제
1
474
1
안녕하세요 강사님!
1
336
1
노션 공유 요청
1
356
1
Linked List 시간 복잡도
3
749
1
hash table의 seperate chaining 질문
0
383
2
인덱스 카디널리티 부분 질문이있습니다.
2
1182
2
프론트엔드 면접준비 질문
0
543
1
시간복잡도
1
267
1
쿠키 질문
0
306
1
쓰레드의 단점 중 궁금한 것이 있습니다.
0
258
1
URL을 주소창에 쳤을 때 화면에 나오기까지의 과정에 대해 추가적으로 궁금합니다.
1
431
1
궁금한게 있습니다
0
203
0
강의자료 HTTP 부분 request 단어가 repuest로 되어있습니다
1
219
1
강의가 이해가 잘되네요
1
246
1
syn 과 fin의 데이터 단위가 다른 이유
2
286
1
Circular Queue에 대해서 질문드려요
1
291
1
Linked List 시간복잡도에 대해서 질문드려요.
5
338
1

