SMP 지원 VxWorks에서 실행되는 우선 순위가 다른 두 개의 작업 'A'와 'B'가 있다고 가정합니다. 'A'와 'B'는 모두 I/O 장치 (예 : 디스크 또는 NIC)에 명령을 내리고 결과를 기다리는 것을 차단합니다. 즉, 'A'와 'B'가 동시에 차단됩니다. 잠시 후 I/O 장치가 인터럽트를 발생시키고 ISR이 호출됩니다. 그런 다음 ISR은 지연된 작업 (일명 "bottom-half")을 작업자 작업으로 보냅니다. 질문 : 작업 - 작업의 우선 순위는 무엇입니까?VxWorks는 인터럽트 반쪽의 우선 순위를 어떻게 결정합니까?
VxWorks 장치 드라이버 개발자 가이드는 다소 모호합니다. 작업자 - 작업의 우선 순위는 선험적으로 설정되어있는 것처럼 보입니다. 결과를 기다리는 것이 차단 된 작업 ('A'및 'B')의 우선 순위에 따라 작업자 작업의 우선 순위를 높이는 자동 상속 메커니즘이 없습니다. 이는 PREEMPT_RT Linux에서 스레드 인터럽트 우선 순위가 작동하는 방식과 유사합니다. 그러나 QNX Neutrino와 LynxOS는 차단 된 작업의 우선 순위를 최대로하여 작업자 작업을 예약합니다. 예. 우선 순위 (작업자) = max_priority (A, B).
누구에게 문의 할 수 있습니까?
"tNetTask가 패킷을 처리 (패킷 재조합 등)하면 대응하는 소켓에서 대기중인 작업으로 전달됩니다." tNetTask는 어떤 우선 순위로 스케줄됩니까? tNetTask는 자체 할당 된 우선 순위로 실행합니까? 아니면 소켓에서 대기중인 작업 중 하나에서 우선 순위를 상속합니까? 이것이 내가 정말로 알아 내려고하는 것입니다. – Glenn