כללים לניתוח פסיקות
פסיקות עלולות
לשנות מבני נתונים גלובליים,
דוגמת חוצצי ה-I/O.
אי לכך, הפונקציות צריכות למנוע מתהליכים אחרים
להפריע להן. אנו משיגים זאת על ידי הרצת
שגרות הפסיקות כאשר הפסיקות כבויות.
XINU מממשת את הכלל
הבא: הפסיקות יהיו מכובות כאשר המשגר
קורא לשגרות בשפה עילית.
השגרה בשפה
עילית חייבת לדאוג להשאיר את הפסיקות כבויות עד שהיא מסיימת לעדכן את מבני הנתונים
הגלובליים.
כאשר כותבים
פסיקות, עלינו להתייחס למספר נקודות:
- הפסיקה איננה יכולה להשאיר את
הפסיקות מבוטלות לזמן רב,
שכן אז
התקנים לא יפעלו כראוי.
(המעבד יתעלם
מהפסיקות שהם מבקשים).
- הפסיקות יכולות להתרחש במהלך ריצת
כל אחד מהתהליכים במערכת.
בפרט, פסיקות חייבות להיות מתוכננות לרוץ
כראוי אפילו אם הן מורצות מהתהליך ה-NULL.
לכן, עליהן לשמור את הכלל הבא: שגרות פסיקה יכולות לקרוא
לפונקציות המשאירות את התהליך הרץ במצב current או ready בלבד.
לכן, פסיקות יכולות להשתמש בפקודות כגון
send או signal, אולם
לא בפקודות כגון wait.
תודה
הסברתם את זה, כמו שאר הנושאים, באופן הכי ברור שיש.