2017-04-25 8 views
1

운영 체제가 차이 프로세스/스레드를 다른 CPU 코어에 정렬하는 방법을 결정할 수 있으면 운영 체제 스케줄러가 작업을 잘 수행합니다. 그렇다면 언제 프로세스에 대해 sched_setafficity()와 같은 함수를 호출해야합니까, 아니면 pthread에 대해 pthread_setaffinity_np()를 호출해야합니까?linux c : "sched_setaffinity"함수의 일반적인 용도는 무엇입니까? 유용하지 않다.

극적으로 성능을 향상시킬 수있는 것 같지 않습니다. 가능한 경우 Linux 프로세스 스케줄러를 다시 작성해야 할 필요가 있다고 생각하십니까?

내 응용 프로그램에서 언제 이러한 함수를 호출해야하는지 알고 싶습니까? 감사합니다. .

+0

작업 스케줄링없이 스레드에 대해서만 CPU를 사용할 수 있습니다. 그렇게하기 위해, 먼저 isocpu patameter를 grub 파일에 넣은 다음 Linux OS가 CPU를 사용하지 않고 sched_setafficity()를 사용하면 개인용 CPU를 갖게됩니다 –

답변

1

DSP (디지털 신호 처리)와 관련된 연산 집약적 인 실시간 프로세스에서 매우 유용합니다. 하나의 실시간 DSP 관련 프로세스 PROCESS0이 코어 CPU0에서 실행된다고합시다. 일부 스케줄링 알고리즘 때문에 CPU0 선점은 process0가 다른 CPU에서 실행되어야하는 것과 같이 발생해야합니다. 실시간 프로세스의 이러한 전환은 오버 헤드입니다. 따라서 친화력. 우리는 프로세스 0이 CPU0에서 실행되어야한다는 것을 커널에 지시합니다.