VxWorks 반전 안전 뮤텍스를 사용할 때 SEM_PRIORITY_Q가 필요한 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/106540

  •  01-07-2019
  •  | 
  •  

문제

VxWorks에서는 우선순위 반전 문제로부터 보호하기 위해 SEM_INVERSION_SAFE 옵션을 사용하여 뮤텍스를 생성하고 있습니다.
설명서에는 내가 ~ 해야 하다 또한 SEM_PRIORITY_Q 옵션을 사용하십시오.왜 그런 겁니까?

도움이 되었습니까?

해결책

VxWroks에서 뮤텍스 세마포어를 생성할 때 세마포어에 대해 대기열에 있는(대기 중인) 여러 작업을 처리하는 두 가지 옵션이 있습니다.FIFO 또는 가장 높은 우선순위 작업이 먼저 시작됩니다.

SEM_INVERSION_SAFE 옵션을 사용하면 뮤텍스를 보유한 작업은 세마포어를 기다리는 가장 높은 우선순위 작업과 동일한 우선순위로 올라갑니다.

세마포어에 대해 FIFO 대기열을 사용하려는 경우 커널은 뮤텍스가 우선 순위가 가장 높은 작업을 찾기를 기다리는 작업 대기열을 순회해야 합니다.대기열에 있는 작업 수가 변경됨에 따라 대기열을 통과하는 시간도 변경되므로 이 작업은 결정적이지 않습니다.

SEM_PRIORITY_Q 옵션을 사용하면 커널은 우선순위가 가장 높은 대기열의 헤드에 있는 작업을 살펴보기만 하면 됩니다.이것은 일정한 시간 작업입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top