מה הם נדחים שיחות נוהל?

תוכן עניינים:

Anonim

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

העברות

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

תזמון

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

תהליכים

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

שגרות

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