הבדל בין הפרעה למלכודת

הבדל בין הפרעה למלכודת
הבדל בין הפרעה למלכודת

וִידֵאוֹ: הבדל בין הפרעה למלכודת

וִידֵאוֹ: הבדל בין הפרעה למלכודת
וִידֵאוֹ: מדברים על מדע - האבולוציה של הנפש המרגישה | דברי פתיחה והרצאה של חוה יבלונקה 2024, יולי
Anonim

Interrupt vs Trap

בכל מחשב, במהלך ההפעלה הרגילה של תוכנית, עשויים להיות אירועים שעלולים לגרום ל-CPU להפסיק זמנית. אירועים כאלה נקראים פסיקות. הפרעות יכולות להיגרם מתקלות תוכנה או חומרה. פסיקות חומרה נקראות (פשוט) פסיקות, בעוד שפסיקות תוכנה נקראות חריגים או מלכודות. חריגה היא פסיקת תוכנה שנוצרה אוטומטית, בעוד ש-Trap היא פסיקה המופעלת על ידי תוכנה שיזם המתכנת. ברגע שהועלתה פסיקה (תוכנה או חומרה), השליטה מועברת לתת-שגרה מיוחדת הנקראת ISR (Interrupt Service Routine) שיכולה להתמודד עם התנאים המועלים מההפרעה.

מהי הפרעה?

המונח Interrupt שמור בדרך כלל להפסקות חומרה. הם הפרעות בקרת תוכנית הנגרמות על ידי אירועי חומרה חיצוניים. כאן, חיצוני פירושו חיצוני למעבד. הפסקות חומרה מגיעות בדרך כלל ממקורות רבים ושונים כגון שבב טיימר, התקנים היקפיים (מקלדות, עכבר וכו'), יציאות I/O (טורי, מקבילי וכו'), כונני דיסקים, שעון CMOS, כרטיסי הרחבה (כרטיס קול, וידאו כרטיס וכו'). כלומר, הפסקות חומרה כמעט אף פעם לא מתרחשות עקב אירוע כלשהו הקשור לתוכנית ההפעלה. לדוגמה, אירוע כמו לחיצת מקש על המקלדת על ידי המשתמש, או זמן קצוב של טיימר חומרה פנימי יכול להעלות סוג זה של הפרעה ויכול להודיע למעבד שמכשיר מסוים זקוק לתשומת לב מסוימת. במצב כזה המעבד יפסיק את כל מה שהוא עשה (כלומר ישהה את התוכנית הנוכחית), יספק את השירות הנדרש על ידי המכשיר ויחזור לתוכנית הרגילה. כאשר מתרחשות הפסקות חומרה וה-CPU מפעיל את ה-ISR, פסיקות חומרה אחרות מושבתות (למשל.ז. במכונות 80×86). אם אתה צריך שיתרחשו פסיקות חומרה אחרות בזמן שה-ISR פועל, עליך לעשות זאת במפורש על ידי ניקוי דגל הפסיקה (עם הוראת sti). במכונות 80×86, ניקוי דגל ההפרעה ישפיע רק על הפרעות חומרה.

מה זה מלכודת?

ניתן לזהות מלכודת כהעברת שליטה, אשר יוזמת על ידי המתכנת. המונח Trap משמש לסירוגין עם המונח Exception (שהוא פסיקת תוכנה המתרחשת אוטומטית). אבל יש שיטענו שמלכודת היא פשוט שיחת תת-שגרה מיוחדת. אז הם נכנסים לקטגוריה של פסיקות המופעלות על ידי תוכנה. לדוגמה, במכונות 80×86, מתכנת יכול להשתמש בהוראה int כדי ליזום מלכודת. מכיוון שמלכודת היא תמיד ללא תנאי, השליטה תמיד תועבר לתת-השגרה הקשורה למלכודת. ההוראה המדויקת, המפעילה את השגרה לטיפול במלכודת, מזוהה בקלות מכיוון שהוראה מפורשת משמשת לציון מלכודת.

מה ההבדל בין Interrupt לבין Trap?

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

מוּמלָץ: