מהן שיחות הליך נדחות?

קריאת הליך נדחה (DPC) היא מנגנון טיפול בהפסקות במערכת ההפעלה Microsoft Windows שאליו מנהלי התקנים יכולים להפנות בעת הפעלת תהליכים מסוימים. DPC מאפשר להפעיל משימה, אך לא לבצע אותה, מרמת בקשת הפסקה (IRQL) עם עדיפות גבוהה. זה מאפשר לנהג לעבד שגרת שירות פסיקה ברמה גבוהה (ISR) במהירות תוך דחייה לביצוע קודי IRQL ברמה נמוכה יותר. מנהלי התקנים משתמשים ב- DPC כדי לתזמן פעולות קלט / פלט (I / O). מנהלי התקנים הם תוכנה המשמשת את Windows לתקשורת עם התקני חומרה.

העברות

מנהל התקן במצב ליבה מטפל בדרך כלל בהעברת זרם נתוני שמע או וידאו ממכשיר חיצוני או אליו. עיבוד הנתונים של מנהלי ההתקנים מונע על ידי הפרעה. החומרה החיצונית יוצרת באופן שגרתי הפרעות לבקשת מנהל ההתקן להעביר את מנת הנתונים הבאה. מנהל התקן אינו יכול לעבד נתונים באופן מיידי בשגרת הפרעות שלו; לפיכך, מערכת ההפעלה צריכה להפעיל שגרה להתקשרות חוזרת, שהיא ה- DPC. מצב הליבה, או מצב המערכת ומצב המשתמש הם מצבי הפעולה של יחידת העיבוד המרכזית שלך. הליבה שולטת בכל פעילויות עיבוד המערכת.

תזמון

הרעיון של שיחת הליך נדחה קיים במצב ליבה בלבד. מערכת ההפעלה שומרת על תדרי ה- DPC המתוזמנים על ידי מנהלי ההתקנים. אם המערכת שלך זקוקה לעיבוד הפרעות, הליבה בודקת את התור של DPC ומבצעת את ה- DPC הראשונה אם אין הפרעות ושום תהליכי DPC פועלים. ה- DPC הוא החוט העדיף ביותר במערכת, שכן עיבוד התורים של DPC מתרחש לפני שהמשלח בוחר שרשור ומקצה זאת למעבד. ל- DPC שלוש רמות עדיפות: נמוכה, בינונית וגבוהה.

תהליכים

כל DPC מקושר עם אובייקט DPC שהוגדר על ידי מערכת. כאשר נהג רושם שגרה של DPCForslr, המערכת מאתחלת את אובייקט DPC שהוגדר קודם לכן. אם נדרשת יותר מ- DPC אחת, מנהל התקן יוצר אובייקטים נוספים של DPC המכונים רוטינות CustomDPC. שגרת DPCForlsr מטפלת בכמה תהליכים; זה משלים את פעולת הקלט / פלט המתוארת על ידי חבילות בקשת הקלט / הפלט (IRP), משרטט את ה- IRP הבא, מגדיר את מצב הקלט / הפלט ב- IRP שהתקבל ואת התהליך להשלמת הבקשה.

שגרות

בדרך כלל, למנהל התקן שיש לו שגרת שירות הפסקה יש לפחות שגרת DPCForIsr או CustomDPC כדי להשלים את העיבוד של פעולות קלט / פלט מונעות הפרעה. על פי Open Systems Resources, Inc, הסיבה הבסיסית שלנהג יש שגרת DPCForlsr אחת, קבוצה של שגרות CustomDPC או שתיהן תלויה באופי המכשיר הבסיסי שלו ובמערכת בקשות ה- I / O שעליה לתמוך. ה- ISR של הנהג צריך להתקשר ל- IoRequestDPC לצורך פעולות קלט / פלט מונעות באמצעות הפרעות DPCForlsr. לעומת זאת, עבור פעולות חופפות, פעולות קלט / פלט מונעות הפרעה המשתמשות בשגרה של CustomDPC, ISR צריך להתקשר ל- KeInsertQueueDPC.