Dans VxWorks, je crée un mutex avec l'option SEM_INVERSION_SAFE, pour me protéger du problème d'inversion de priorité.
Le manuel indique que je doit utiliser également l'option SEM_PRIORITY_Q. Pourquoi donc?Pourquoi ai-je besoin de SEM_PRIORITY_Q lorsque j'utilise un mutex VxWorks à inversion de sécurité?
Pourquoi ai-je besoin de SEM_PRIORITY_Q lorsque j'utilise un mutex VxWorks à inversion de sécurité?
Répondre
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.
- 1. Portage des problèmes à VxWorks
- 2. Inversion de contrôle pour votre conteneur Inversion de contrôle?
- 3. Comment déterminer pourquoi une tâche détruit, VxWorks?
- 4. Comment VxWorks traite-t-il l'héritage prioritaire?
- 5. Inversion de chaîne en Python
- 6. Bit Inversion
- 7. php: inversion des effets de mysql_real_escape_string sur un binaire
- 8. Besoin de partage de fichiers cloud avec API et sécurité
- 9. Quoi de mieux pour une file d'attente de messages? mutex & cond ou mutex et sémaphore?
- 10. Obtenez une liste de mutex?
- 11. Pourquoi avons-nous besoin de l'interrogation Comet ou HTTP lorsque nous n'utilisons pas de navigateur?
- 12. Inversion de contrôle dans les compilateurs
- 13. Injection de dépendances et inversion de commande - terminologie
- 14. dépendances Isoler sans inversion de contrôle
- 15. erreur de sécurité Javascript 1000 lorsque de redimensionnement du texte
- 16. Exécution d'une seule instance d'une application à l'aide de Mutex
- 17. Mutex Stored Procédure
- 18. Besoin de créer des données partagées dans la mémoire virtuelle dans vxWorks
- 19. C++ classe pourquoi besoin de main?
- 20. Win32 Mutex n'attend pas
- 21. Inversion d'une chaîne en C
- 22. Interprocess Mutex En Perl
- 23. Comment utiliser un mutex dans Visual Basic
- 24. Pourquoi un IpcChannel me dit: "Impossible d'ouvrir un jeton de sécurité de niveau anonyme?"
- 25. sécurité de thread de ManualWorkflowSchedulerService.RunWorkflow
- 26. Profilage d'un système VxWorks
- 27. Implémentation de Monitor avec signalisation à l'aide de mutex et variable de condition en C++
- 28. Pourquoi le Web a-t-il besoin de HTTP?
- 29. Pourquoi est-ce que je perds des données lors de l'utilisation d'un tube vxWorks?
- 30. Comment puis-je savoir pourquoi une de mes tâches vxWorks est en attente?