멀티프로세서+멀티코어에 대해 궁금한게 있습니다.

박한범 2010.11.01 15:35 조회 수 : 8790

 

초점이 모호해지는 기분이 들어서 질문 다시 올리겠습니다.

제가 궁금한 것에만 포커스를 맞추려고 합니다. 이해 부탁드리고

먼저 이 궁금증의 발단부터 말씀드리겠습니다.

 

윈도우에서는 멀티-코어(물리적 CPU코어) 를 지원합니다.

그리고 윈도우에서는 하나의 CPU 코어당 하나의 PRCB 라는 프로세서 관리 구조체를 갖습니다.

 

각각의 PRCB는 자신만의 쓰레드 디스패처 데이터베이스를 갖으며,

PRCB 구조체 내용상 각각의 IDT와 VAD외에 많은 고유한 자료구조를 갖습니다.

 

 

-------------------------------------------------------------------------------------------------------------------------------------

 

정리해서 말하자면 하나의 CPU 는 하나의 PRCB에 대응되며, 각자 자신의 쓰레드 디스패치 데이터베이스를 가지고 쓰레드 디스패칭을 하고 있습니다. 쓰레드를 스케쥴링 함에 있어서 멀티레벨큐 방식을 사용합니다.

 

제가 궁금한건 이런 이론적인게 아닙니다.

 

윈도우에서

"PRCB를 코어에 대응되게 만들어놨는데, 이게 어떻게 CPU코어와 대응되어 동작하는지"

가 제 질문의 요지입니다.

 

다시 말씀드리자면, PRCB하나가 쓰레드를 하나 가져와서 실행합니다.

PRCB 다른 하나도 쓰레드를 하나 가져와서 실행합니다.

 

근데 여기서 어떻게 PRCB하나가 쓰레드를 하나 동작하는 것과 다른 PRCB가 다른 하나의 쓰레드를 동작하는 것을

CPU Core에 대응되게 동작할 수 있느냐?? 이게 도대체 이해가 안됩니다.

 

예를 들자면 인터럽트를 처리하는 IOAPIC같은 경우는, 

( 물론 IOAPIC에서 어떤 코어에서 이 인터럽트를 처리할지 결정해 그 코어의 Local APIC로 전달해주죠. )

Windows의 IDT 와 대응되기 위해서 물리 메모리에 매핑을 해놓습니다.

이를 토대로 Vector를 얻어서 IDT Entry를 찾아갈 수 있습니다.

 

하지만 PRCB - Cpu core 간의 관계에서는 어떤 단서도 찾을 수가 없어서 답답해서 질문을 드립니다.

 

이에 대한 어떤 단서라도 좋습니다. 댓글 부탁드립니다. ㅠㅠ

번호 제목 글쓴이 날짜 조회 수
공지 [공지] 프로그래밍 관련 Q&A 게시판 입니다. woos 2016.04.09 22270
438 S3c2440의 USB host 기능 실현에 대한 질문입니다. 이죽송 2010.07.16 9451
437 부트 롬으로 어떤 것을 쓰고 계시나요? [2] 홍문화 2010.12.28 9450
436 TCP/IP 구현과 관련하여 다시 질문 드립니다. [2] 김현우 2008.11.27 9425
435 리눅스 커널 scheduler가 언제 불리는지요(time slice가 over되었을때) [1] 김주남 2010.12.30 9391
434 CPU bound 와 I/O Bound 구분 김영민 2011.04.26 9374
433 freescale codewarrior 컴파일러 메뉴얼을 보고 있는데 질문 드립니다. [2] 최고운 2012.03.27 9310
432 sleep과 재진입가능 함수. [1] 김기욱 2008.11.15 9159
431 slab과 buddy 질문 [8] 김광식 2012.08.30 9150
430 RHEL6에서 fork된 task 정보 어떻게 얻어오나여? [4] 이천희 2011.01.10 9121
429 전역 변수 참조 문제 김현우 2008.12.28 9110
428 EEMBC multibench 소스 코드 있으신분? 백창우 2011.01.25 9069
427 메모리와 페이지 테이블에 대해 질문 드립니다. [1] pororo 2011.04.17 9048
426 USIM으로 할 수 있는것들? [2] 백창우 2010.03.29 8912
425 리눅스 커널 디버깅 (kdb) 질문 있습니다!!!!! [2] 조성훈 2008.07.09 8836
424 gcc 디버깅방법 [1] 피승현 2010.09.27 8821
423 다음 커널분석 스터디에 참가하고 싶습니다. [1] 김기태 2007.07.04 8820
422 커널 스터디는 어떻게 참여해야하느건가요? [1] 김태진 2007.08.10 8806
» 멀티프로세서+멀티코어에 대해 궁금한게 있습니다. [14] 박한범 2010.11.01 8790
420 nfs를 이용해서 host의 파일을 개발 보드로 복사할 때 발생하는 에러에 대해서 문의가 있습니다. 박종주 2012.04.25 8726
419 Linux kernel source 분석 study에 대하여 질문이 있습니다. [1] 온정상 2007.10.19 8712
XE Login