이 쿼리는 멀티 코어 프로세서의 패킷 처리와 관련이 있습니다. 패킷 처리는 Linux 또는 순수 데이터 경로에서 수행 할 수 있습니다. 패킷 처리 응용 프로그램이 Linux에 있으면 높은 성능을 위해 패킷을 인터럽트 기반으로 처리해야하지만 패킷 처리가 순수한 데이터 경로 (Linux가없는)에 있으면 높은 성능을 얻기 위해 폴링을 사용해야합니까? 그렇다면 왜/어떻게?멀티 코어 프로세서의 패킷 처리를위한 폴링 및 인터럽트 기반 방법
답변
폴링
우리는 아직이 있습니까? 우리는 아직있다? 우리는 아직있다? 우리는 아직있다? 우리는 아직있다? ...인터럽트
끝나면 핑 소리가납니다. 폴링 (당신이 수십 회 두 번째의 수천을 중단하기하는 경우 중요한) 인터럽트의 오버 헤드를 방지하면서
하이브리드 프로세스가 있습니다. 즉, 인터럽트로 되돌아 가기 전에 몇 밀리 초 동안 인터럽트 이후 폴링입니다.
멀티 태스킹 운영 체제를 사용하는 경우 폴링은 지연 시간 패널티가있는 이됩니다 (다른 작업이 실행 중일 때 패킷이 수신되는 경우 이 실행 됨). 따라서 이러한 시스템에서 인터럽트 기반 접근 방식을 사용하면 더 나은 처리량을 얻을 수 있습니다. 이는 인터럽트 메커니즘이 다른 프로세스를 차단하지 않고 이상의 데이터 경로의 우선 순위를 높일 수 있기 때문입니다 (우선 순위가 높은 작업의 폴링이 모든 우선 순위가 낮은 작업을 차단할 수 있기 때문입니다).
당신이 OS없이 베어 메탈 임베디드 시스템에서 실행중인 경우 새로운 패킷에 대한 검사의 모든 시간을 보내고 또는 으로 처리 할 수있는 CPU 이후 폴링을 사용하여 최고의 처리량을 얻을 수 있어야합니다 수신 된 패킷의 결과. 이렇게하면 대기 시간이 최소화되고 패킷 처리에 최대주기 인 이 할당됩니다. 인터럽트 호출하면 처리기가 낭비되고이 경우 추가 복잡성이 발생합니다. 아무 것도 CPU에서 실행되고 있지 않으므로주기는 데이터 경로를 사용하지 않는주기 입니다. 이 하지 않는 것을
주 전체 응용 프로그램의 성능이 더 나은 또는 특정 구현이 빠른 폴링에 있다는 것을 의미한다. 가능한 최대 처리량이 폴링을 통해 에 도달한다는 것을 의미합니다. 예를 들어, 응용 프로그램에서 많은 수의 을 처리해야하는 경우 인터럽트가있는 DMA를 사용하면 성능이 향상 될 수 있습니다. 어떤 특정 경우에 폴링이 더 빠르다는 것을 알고 싶다면 에 그 응용 특성을 크게 의존합니다.
나는이 질문의 "멀티 코어"측면이 무엇인지 확실하지 않다하지만 이것이 너무 것 있지만 임베디드 멀티 코어 시스템에서 mimimum 대기 시간을 얻기 위해 I/O 폴링에 CPU를 바치고 감각을 만들 수 있습니다 고도로 응용 프로그램 특정.
ninjalj 메모에서 하이브리드 방식을 사용하면 더 복잡한 시나리오에서 총 성능을 최적화 할 수 있습니다.위의 내용은 간단한 케이스 인 에 대해서만 적용됩니다.
- 1. 멀티 코어 프로세서의 스레드
- 2. 멀티 코어 프로세서의 멀티 스레드 응용 프로그램
- 3. i7 멀티 코어 프로세서의 .Net 3.5
- 4. 멀티 코어 및 mulithreads
- 5. 이벤트 기반 및 폴링/예약
- 6. 멀티 코어 프로세서의 특정 코어에 대한 부하 결정
- 7. 순수 폴링 구현에서 부스트 인터럽트
- 8. wcf 및 멀티 코어
- 9. 멀티 코어 및 mulithreads
- 10. 코어 멀티 코어 프로세서에 코드를 분산시키는 방법
- 11. 대하여 인터럽트 기반 통신
- 12. 멀티 코어 및 병렬 처리
- 13. PHP 소켓 프로그래밍 - 폴링 대 인터럽트
- 14. 얼랑 SMP 멀티 코어 서버
- 15. 멀티 코어 프로세서가있는 중요 섹션
- 16. 다른 멀티 코어 프로세서에서 테스트하기위한 속도 정규화
- 17. 스레드 풀링 및 멀티 코어 시스템
- 18. 멀티 코어 코딩
- 19. AMD 멀티 코어 프로그래밍
- 20. 오픈 mpi 테스팅을위한 멀티 코어 가상 머신
- 21. Windows 서비스의 멀티 스레딩/데이터베이스 폴링
- 22. 멀티 코어 하드웨어의 numpy
- 23. 코어 데이터, MOC 및 멀티 스레딩
- 24. 파이썬 : 멀티 코어 프로세싱?
- 25. 멀티 코어 컴퓨터에서 그리기
- 26. Windows의 멀티 코어 하스켈
- 27. 멀티 코어 어플리케이션 cygwin
- 28. 멀티 코어 PC에서 PHP를 실행하는 방법
- 29. 멀티 코어 프로세서에서 TPL 작동 방법
- 30. 멀티 코어 프로세서에서 CRx 레지스터에 액세스하는 방법
질문을 수정하십시오. 명확하지 않습니다. –
... 사실 내 생각이 너무 명확하지 않아서 그것이 SO에 속한다고 확신 할 수 없다 (프로그래밍 질문인가?). – Lucero