MacBook Pro의 Snow Leopard에서 프로세서 선호도를 어떻게 설정합니까? Windows에서는 작업 관리자에서 전환 할 수 있다는 것을 알고 있습니다.
MacBook Pro의 Snow Leopard에서 프로세서 선호도를 어떻게 설정합니까? Windows에서는 작업 관리자에서 전환 할 수 있다는 것을 알고 있습니다.
답변:
OS X은 버전 10.5부터 스레드 선호도 API를 지원했습니다 . 여기에 링크 된 웹 페이지의 관련 자료가 있습니다.
선호도 집합은 메모리 리소스를 공유하고 L2 캐시를 공유하려는 스레드 모음입니다. 고유 선호도 세트는 별도의 친화도를 나타냅니다. 즉, 다른 세트에 속하는 스레드는 별도의 L2 캐시를 사용해야하므로 다른 논리 프로세서에서 실행되어야합니다.
선호도 세트는 "태그"로 식별됩니다. 스레드는 해당 세트를 식별하는 태그를 지정하여 특정 선호도 세트에 지정됩니다. 스레드는 최대 하나의 선호도 집합에 속할 수 있습니다. 즉, 하나의 선호도 태그가 있습니다.
예를 들어, 별도의 L2 캐시에서 2 개의 스레드를 실행하려는 응용 프로그램은 다른 선호도 태그로 스레드를 설정합니다. 이중 코어 시스템에서는이 선호도가 효과적으로 무시됩니다. 그러나 4 코어 MacPro에서 스케줄러는 별도의 패키지에서 스레드를 실행하려고합니다. 마찬가지로, 8 코어 MacPro에서 스케줄러는 이러한 스레드를 별도의 다이 (동일한 물리적 CPU 패키지에 있거나 없을 수 있음)에서 실행하려고합니다.
사용 가능한 모든 프로세서에 스레드를 배치하려는 응용 프로그램은 다음을 수행합니다.
- sysctl (3)을 사용하여 시스템의 프로세서 수를 확보하십시오.
- 해당 스레드 수를 작성하십시오.
- 고유 한 선호도 태그를 사용하여 각 스레드를 설정하십시오.
- 모든 스레드를 시작하십시오.
기본 선호도 정책이있는 스레드는 모든 프로세서에서 더 자유롭게 예약됩니다. 이 스레드는 우선적으로 유휴 프로세서에서 실행되도록 마이그레이션됩니다. 선호도 태그가있는 스레드는 그대로 유지됩니다.
코드 목록 및 상위 프로세스와 하위 프로세스간에 선호도 태그 공유, CPU 캐시 구성 획득 등에 대한 정보는 소스를 참조하십시오.
http://developer.apple.com/mac/library/releasenotes/Performance/RN-AffinityAPI/
Mac OS X은 프로세서를 식별하거나 스레드 배치를 제어하는 인터페이스를 내 보내지 않습니다. 명시 적 스레드 대 프로세서 바인딩은 지원되지 않습니다 . 대신 커널은 모든 스레드 배치를 관리합니다. 응용 프로그램은 대부분의 상황에서 스케줄러가 캐시 선호도와 관련하여 적절한 프로세서 배치를 사용하여 스레드를 실행할 것으로 예상합니다.
에서 http://images.apple.com/macosx/docs/OSX_for_UNIX_Users_TB_July2011.pdf
효율적인 커널 스레드. 각 POSIX 스레드는 특정 CPU에 대기하여 프로세서 선호도와 확장 성을 향상시키면서 잠금 경합을 줄입니다. 스레드는 취소 및 공유 뮤텍스 지원을 포함하여 POSIX (1c)를 준수합니다.
나에게 광고처럼 보이지만 Lion을 실행하는 iMac은 대부분의 시간을 존중하지만 프로세스를 핵심에 '고정'하지는 않습니다.
어쨌든 darwin의 프로세스 선호도를 제어하는 API를 찾을 수 없습니다.