2010-12-04 2 views
0

하이퍼 스레딩 기능이있는 단일 코어 CPU에서 멀티 스레드 프로그램이 안전하게 실행되는 경우 하이퍼 스레딩 기능이있는 듀얼 코어 CPU에서도 안전하게 실행됩니까? 등 스레드 안전에 관한 것은하이퍼 스레딩 기능이있는 단일 코어 PC에서 테스트

편집

좋아, 좀 더 구체적으로하려고합니다. 나는 잊어 버렸거나 확신하지 못했던 나쁜 소스 코드 라인을 의미한다. (동시성) 문제가되지는 않을 것이다.

그래서 1 코어 htt는 데드락, 크래시, CPU 스파이크 또는 2 코어 머신에서 발생하는 내 코드를 방지하여 "거짓"일 수 있습니다. 저는 htt PC의 2 (논리적 인) 프로세서가 듀얼 코어 PC의 2 프로세서와 얼마나 다른지, 얼마나 투명한 htt인지 확실하지 않습니다. 어떤 문제가 있다면, 아마도 두 번째 PC를 구입할 것입니다. 그래서 제가 물었습니다.

+0

"안전하다"는 말은 프로그램을 반복적으로 실행했을 때 충돌이 발생하지 않았거나 코드 작성시 동시성 문제가 발생하지 않는다는 것을 의미한다는 것을 의미합니까? 전자의 경우, 당신은 방금 행운아 였을 것입니다; 후자의 경우, CPU 코어의 수는 (이론적으로) 차이를 만들어서는 안됩니다. – stakx

+0

동시성 문제를 피하려고합니다. 현재의 PC가 싱글 코어이기 때문에 듀얼 코어가 더 많은 문제에 내 프로그램을 노출 할까? 내 프로그램이 잘 작성되지 않은 경우, 단일 코어 htt PC 충돌이 줄어들지 않습니까? – Karl

+0

... 데드 록 시나리오 또는 그럴 수 있습니다. 아마도 듀얼 코어 머신을 구입하는 것이 가장 좋습니다. 이론적으로 단일 코어의 htt 컴퓨터가 테스트를 거치지 않을 것이라는 확신을 갖기 위해 노력했습니다. – Karl

답변

1

질문을 통해보다 정확하게 설명해야합니다. 그냥 "스레드 안전 등" 질문이 끝나면 쓰레드가 무엇을 의미하는지 알지 못합니다. 멀티 스레드 응용 프로그램은 어떤 언어로 작성되었으며, 어떤 OS 버전을 사용하고 있습니까? 어떤 칩셋을 고려하고 있습니까?

에 관계없이, 대답은 - OS에 하이퍼 스레딩 "거짓"이며 실제로있는 것보다 더 많은 실제 코어가 기계에 있다고 확신합니다. OS의 관점에서 싱글 코어 하이퍼 스레딩 구성과 듀얼 코어 비 하이퍼 스레딩 구성 간에는 차이점이 없습니다. 듀얼 코어 하이퍼 스레 디드 구성은 확장하여 사용 가능한 물리적 코어의 수를 두 배로 늘립니다.

하이퍼 스레딩 구현 방법과 메모리 공유 및 동기화 구현 방법에 대한 자세한 지식을 얻기 위해 사용하는 칩셋과 관련된 사양 문서를 읽어야합니다.

+0

아, 관련 문서를 찾았습니다. http://download.intel.com/design/processor/manuals/253665.pdf. 페이지 2-22는 하이퍼 스레딩에 대한 첫 번째 참조입니다. –

+0

깜빡, OS : 윈도우 7, 언어 : C 및 어셈블리 – Karl

+0

흥미 롭습니다. 그런 현대적인 OS에 대해서는 걱정할 필요가 없다고 말할 것입니다. 코드를 사용하지 않고 실제 OS 스레드를 노출시키는 언어를 사용하고 있습니다 (파이썬은 스레드를 노출하지만 전역 잠금을 사용하여 모든 스레드를 동기화합니다). 의심 스러울 때는 시험하십시오. –

관련 문제