Deferred Procedure Call

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Un appel de procédure différée (ou Deferred Procedure Call, abrégé "DPC") est un mécanisme utilisé sous les systèmes d'exploitation Microsoft Windows, et permettant aux tâches les plus prioritaires de reporter à plus tard l'exécution de tâches ayant un niveau de priorité inférieur. Cela permet aux pilotes de matériel ainsi qu'aux autres procédures de bas niveau d'obtenir rapidement la priorité pour leurs propres tâches, et ce, tout en attribuant un niveau de priorité d'excécution moins élevé aux processus additionnels.

Les DPC sont implémentés sous forme d'objets DPC créés et initialisés par le noyau du système d'exploitation lorsqu'un pilote ou un autre programme s'exécutant dans l'espace noyau en fait la demande. La requête DPC est donc placée en fin de la file d'attente des demandes d'appels de procédures différées. Chaque processeur dispose de sa propre file d'attentes pour les requêtes DPC. Les appels de procédures différées ont trois niveaux de priorités : basse, moyenne, et élevée. Par défaut, toutes les DPC ont une priorité moyenne. Lorsque le processeur rencontre une interruption (IRQL : Interrupt Request Level) correspondant à l'ordonnancement des tâches/DPC, il consulte la file d'attente des procédures d'appels différées et les exécute progressivement jusqu'à épuisement de la file d'attente ou jusqu'à ce qu'une autre interruption de priorité plus élevée soit rencontrée.

Références[modifier | modifier le code]

  • [1] - Définition des DPC sur le site de Microsoft
  • (en) Art Baker & Jerry Lozano., Windows 2000 Device Driver Book: A Guide for Programmers, Second Edition, The, Upper Saddle River, Prentice Hall.,‎ 2000, 2e éd., poche (ISBN 978-0-13-020431-8, lien LCCN?, lire en ligne)