2008-09-20 4 views

Répondre

3

Lors de la création d'un sémaphore mutex dans VxWroks, vous avez deux options pour gérer plusieurs tâches en file d'attente (en attente) pour le sémaphore: première tâche FIFO ou priorité la plus élevée. Lorsque vous utilisez l'option SEM_INVERSION_SAFE, la tâche contenant le mutex sera convertie en priorité avec la tâche de priorité la plus élevée en attente du sémaphore.

Si vous utilisiez une file d'attente FIFO pour le sémaphore, le noyau devrait traverser la file d'attente des tâches attendant que le mutex trouve celui qui a la plus haute priorité. Cette opération n'est pas déterministe, car le temps nécessaire pour parcourir la file d'attente change à mesure que le nombre de tâches mises en file d'attente change. Lorsque vous utilisez une option SEM_PRIORITY_Q, le noyau doit simplement regarder la tâche en tête de la file, car c'est la priorité la plus élevée. C'est une opération à temps constant.

Questions connexes