Ertelenmiş Prosedür Çağrısı - Deferred Procedure Call - Wikipedia

Bir Ertelenmiş Prosedür Çağrısı (DPC) bir Microsoft Windows yüksek öncelikli görevlere izin veren işletim sistemi mekanizması (ör. işleyiciyi kes ) gerekli ancak daha düşük öncelikli görevleri daha sonra yürütmek üzere ertelemek. Bu, aygıt sürücülerinin ve diğer düşük seviyeli olay tüketicilerinin, işlemlerinin yüksek öncelikli bölümünü hızlı bir şekilde gerçekleştirmesine ve kritik olmayan ek işlemleri daha düşük bir öncelikte yürütme için programlamasına izin verir.

DPC'ler, tarafından oluşturulan ve başlatılan DPC nesneleri tarafından uygulanır. çekirdek zaman aygıt sürücüsü veya başka bir çekirdek modu programı, DPC taleplerini yayınlar. DPC talepleri bir DPC'nin sonuna eklenir kuyruk. Her işlemcinin ayrı bir DPC kuyruğu vardır. DPC'lerin üç öncelik seviyesi vardır: düşük, orta ve yüksek. Varsayılan olarak, tüm DPC'ler orta önceliğe ayarlanmıştır. Windows bir IRQL Dispatch / DPC seviyesinde, bekleyen DPC'ler için DPC kuyruğunu kontrol eder ve kuyruk boşalana veya daha yüksek bir IRQL ile başka bir kesinti oluşana kadar bunları yürütür.

Örneğin, saat kesintisi üretildiğinde, saat kesinti işleyicisi genellikle o iş parçacığının toplam yürütme süresini hesaplamak için mevcut iş parçacığının sayacını artırır ve kuantum Kalan süre 1'e kadar. Sayaç sıfıra düştüğünde, iş parçacığı zamanlayıcı, bu işlemci üzerinde yürütülecek bir sonraki iş parçacığını seçmek için çağrılmalıdır ve bir bağlam anahtarı gerçekleştirmek için dağıtıcı. Saat kesintisi çok daha yüksek bir IRQL'de meydana geldiğinden, daha az kritik bir görev olan bu iş parçacığı gönderiminin daha sonra işlemcinin IRQL'i düştüğünde yapılması arzu edilecektir. Bu nedenle, saat kesme işleyicisi bir DPC nesnesi ister ve bunu, işlemcinin IRQL'i DPC / Gönderim düzeyine düştüğünde gönderimi işleyecek olan DPC kuyruğunun sonuna ekler.

Kesintileri kullanan akışlı ses veya video ile çalışırken, DPC'ler, akış sırasında her arabellekteki sesi işlemek için kullanılır. Başka bir DPC (kötü yazılmış bir sürücüden) çok uzun sürerse ve başka bir kesinti, daha önce yeni bir veri arabelleği oluşturursa ilki işlenebilir, bir bırakmak Sonuçlar.[1]

Referanslar

Genel
  • Art Baker ve Jerry Lozano. (2000). Windows 2000 Aygıt Sürücüsü Kitabı: Programcılar İçin Bir Kılavuz, İkinci Sürüm,. Prentice Hall. ISBN  978-0-13-020431-8.
  • DPC'nin Microsoft tanımı
Özel
  1. ^ Ute Eberhardt (27 Haziran 2012). "DPC Gecikme Denetleyicisi". Thesycon.de. Alındı 14 Ekim 2017.