הבדל בין הפרעה לחריגה

הבדל בין הפרעה לחריגה
הבדל בין הפרעה לחריגה

וִידֵאוֹ: הבדל בין הפרעה לחריגה

וִידֵאוֹ: הבדל בין הפרעה לחריגה
וִידֵאוֹ: What is IP address and Port number ? 2024, יולי
Anonim

הפרעה לעומת חריגה

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

מה זה הפרעה?

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

מה זה חריגים?

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

מה ההבדל בין הפרעה לחריגה?

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

מוּמלָץ: