멀티 코어 프로세서의 경우 특정 응용 프로그램에 단일 코어 또는 2 코어 또는 3 코어로 실행되도록 지시하는 방법이 있습니다. 응용 프로그램 (많은 스레드가있는)이 둘 이상의 코어에서 실행되는 시나리오를 고려할 때 스케줄러는 멀티 코어 프로세서의 특정 코어에서로드 (스레드 수)를 결정하고 그에 따라 다양한 코어에서로드 (스레드 할당)?멀티 코어 프로세서의 특정 코어에 대한 부하 결정
답변
대부분의 스케줄러에서 모든 CPU는 시스템의 현재 상태를 검사하고 유용한 작업을 찾으려고 독립된 엔티티입니다. CPU를 일중독으로 묘사하십시오 - 그것은 항상 수행 할 수있는 모든 것을 시도 할 것입니다. 스케줄러는 CPU에게 다음에해야 할 일을 알려주는 "보스 (boss)"가 아니므로 모든 사람들이 공정한 분배를하는지 확인하십시오. 오히려 각 CPU는 시스템의 상태를 검사하고 가능한 한 많은 작업을 수행하는 방법을 찾으려는 스케줄링 알고리즘을 따릅니다.
예약 알고리즘에는 "스레드 선호도"에 대한 규정이있을 수 있습니다. 이는 CPU가 이전에 예약 된 스레드를 실행하는 것을 선호한다는 것을 의미합니다. 즉, 해당 스레드가 캐시에있을 가능성이 높기 때문입니다. 그러나 네트워크로드 균형 조정과는 달리 스케줄링 알고리즘은 작업 부하가 불공평 해지더라도 항상 모든 CPU를 가능한 한 바쁘게 유지하는 것과 관련이 있습니다.
왜? 작업 부하가 CPU를 많이 사용하는 경우 모든 CPU를 거의 100 %로 실행할 수 있으며 작업 부하는 공평합니다. 작업 부하가 I/O 집약적이고 CPU가 실제 시스템의 일반적인 경우 인 공유 리소스를 기다리는 데 대부분의 시간을 소비하는 경우 모든로드 균형 조정 전략은 공유 리소스를 단순히 최대한 빨리
간단한 다중 CPU 스케줄러는 실행 가능한 스레드 대기열과 차단 된 스레드 목록을 포함합니다.이 대기열과 목록은 잠금으로 보호 된 액세스로 모든 CPU에서 공유하는 데이터 구조입니다. CPU가 스케줄러에 들어갈 때 가장 우선 순위가 높은 실행 가능한 스레드를 선택하고 블록 또는 할당 된 타임 슬라이스가 만료 될 때까지 해당 스레드를 실행합니다. 스레드가 차단되면 스레드가 다시 실행 가능해질 때까지 차단 된 스레드 목록에 배치됩니다. 타임 슬라이스가 만료되면 스레드는 실행 가능 스레드 대기열의 지연된 위치에 놓이고 다른 스레드가 선택됩니다. HTTP : //software.intel
리눅스에서는 ####는 CPU리스트에게 멀티 코어 인식
- 1. 멀티 코어 프로세서의 스레드
- 2. 멀티 코어 프로세서의 멀티 스레드 응용 프로그램
- 3. i7 멀티 코어 프로세서의 .Net 3.5
- 4. 얼랑 SMP 멀티 코어 서버
- 5. 멀티 코어 프로세서의 패킷 처리를위한 폴링 및 인터럽트 기반 방법
- 6. 멀티 코어 코딩
- 7. SOLR 멀티 코어 공유 구성
- 8. 특정 CPU 코어에 스레드를 할당
- 9. 멀티 코어 프로세서가있는 중요 섹션
- 10. Perl을 사용하여 코어에 프로세스 할당
- 11. Windows XP에서 코어에 프로세스를 할당하는 방법
- 12. 다른 멀티 코어 프로세서에서 테스트하기위한 속도 정규화
- 13. 멀티 코어 하드웨어에 대한 .NET Framework 지원
- 14. 멀티 코어 프로세서에서 CRx 레지스터에 액세스하는 방법
- 15. freebsd/linux의 특정 코어에 프로세스를 바인드하는 방법
- 16. 물리적 코어에 대한 OpenMP 스레드 매핑
- 17. 파이썬 : 멀티 코어 프로세싱?
- 18. 멀티 코어 및 mulithreads
- 19. 멀티 코어 하드웨어의 numpy
- 20. wcf 및 멀티 코어
- 21. 멀티 코어 컴퓨터에서 그리기
- 22. Windows의 멀티 코어 하스켈
- 23. AMD 멀티 코어 프로그래밍
- 24. 멀티 코어 및 mulithreads
- 25. 멀티 코어 어플리케이션 cygwin
- 26. 쿼드 코어 멀티 스레딩/BackgroundWork (C#)
- 27. 오픈 mpi 테스팅을위한 멀티 코어 가상 머신
- 28. Asp.net MVC의 특정 페이지에 대한 조회수 결정
- 29. 코어 멀티 코어 프로세서에 코드를 분산시키는 방법
- 30. 멀티 코어 llvm 용 가비지 컬렉터?
스케줄러입니다
taskset -C### ./executable
가 itself.You이보고 할 수 있습니다에 별도의 주제입니다 사용할 수 있습니다. 프로그래머 수준에서 상호 의존적이지 않은 부분을 병렬 (스레드)로 실행할 수 있도록 알고리즘을 개발해야합니다 .Fast Fourier Transforms는 병렬 처리 계산의 완벽한 예입니다 멀티 코어 프로그래밍을 용이하게하는 병렬 라이브러리가 있습니다. – itisravi정확한 답변을 얻지는 못했지만 아주 좋은 링크였습니다. –