פסיקה (Interrupt), אות שמגיעה למעבד ממכשיר חומרה או מתוכנה. היא מבקשת להפסיק זמן מה משימה אחת, כדי לעבד משימה אחרת דחופה. אחרי הטיפול בפסיקה המחשב חוזר להמשיך במשימה שהופסקה. בעת קבלת הפסיקה המחשב עוצר את הביצוע הסדרתי של התוכנית ומריץ שגרת טיפול בפסיקה, ואז ממשיך בביצוע הרגיל. פסיקות תוכנה הן קריאות פנימיות שמפסיקות תוכנית בלי להשתמש בזרימת הפקודות הרגילה.
המונח פסיקה נגזר מהמילה "הפסקה", בהתאמה ל־interrupt באנגלית.
כשהמערכת מריצה תוכנית היא טוענת אותה לזיכרון. כל פקודה שמורה בתא זיכרון עם הקידוד שלה וכתובות רלוונטיות. הביצוע נעשה בצורת לולאה של מחזורי עבודה: "מחזור פסיקה", "מחזור הבאה" ו"מחזור ביצוע". כתובת הפקודה הבאה נשמרת במונה הפקודות (PC, Program Counter). הפקודה נקראת מזיכרון אל רישום שנקרא MBR, Memory Buffer Register. כאשר אירוע בלתי צפוי קורה, למשל לחיצה על מקש או חלוקה באפס, המחשב עובר למחזור פסיקה כדי לטפל באירוע לפני ההבאה של הפקודה הבאה.
יש כמה סוגים של פסיקות: פסיקות אסינכרוניות נגרמות על ידי התקני חומרה ומעכבות את התוכנית כדי להעביר מידע למעבד. לדוגמה, שעון חומרה שולח בקשות פסיקה בזמנים קבועים לתיזמון. פסיקות סינכרוניות נגרמות כתוצאה מפעולות בתוך המעבד, כמו חלוקה באפס, והן מטופלות כשגיאות. פסיקות יזומות (software interrupts) מעוררות תוכנה באמצעות פקודה מיוחדת כדי להעביר מידע או לבקש שירות מהמערכת.
בתהליכים כמו כתיבה לדיסקט, משתמשים ביותר מסוג פסיקה: התוכנית שולחת נתונים לבקר הכונן ומפעילה פסיקה יזומה כדי להתחיל. כשהבקר מסיים את הכתיבה הוא מייצר בקשת פסיקה (IRQ). המעבד פונה לטבלת הפסיקות בזיכרון ומריץ את שגרת הטיפול המתאימה. לאחר סיום שגרת הטיפול המעבד מודיע לבקר שהטיפול הסתיים ובקר הפסיקות מכבה את הבקשה.
פסיקות משמשות לתזמונים בחומרה, העברת נתונים לדיסק ולהפך, ולממשקי תקשורת כמו UART ו‑Ethernet. הן מטפלות באירועי מקלדת ועכבר ומגבירות תגובה לאירועים שדורשים זמן קצר. יש פסיקות שלא ניתן לחסום (non‑maskable) שמשמשות לבקשות בעדיפות גבוהה, כמו אותות כיבוי או פסק זמן קריטי. פסיקות תקופתיות משמשות למדידת זמן, לתזמון ריצת תוכניות ולדגימה ממכשירי קלט.
התקנים שמעוניינים לעורר פסיקה שולחים בקשת פסיקה לבקר הפסיקות. לכל התקן מוקצה כניסה עם מספר מזהה. בקר הפסיקות מעביר את הבקשה למעבד. המעבד שומר את מצב המערכת, האוגרים והכתובת הבאה, במחסנית (stack). אחר כך הוא שואל את בקר הפסיקות מהו מספר הפסיקה. לפי המספר המעבד מוצא בטבלת הפסיקות את שגרת הטיפול המתאימה ומעביר אליה את הביצוע.
בעת מעבר למצב מיוחד המערכת בודקת בטבלת הפסיקות איך לטפל. לרוב הטבלה כוללת קפיצות לכתובות עם שגרות הטיפול. מערכות מודרניות מחזיקות מבני נתונים שמאפשרים לשנות לאן מפניה הטבלה. לאחר הפעלת שגרת טיפול חדשה מקובל לקרוא גם לשגרה הישנה, כדי לשמור תאימות. שגרת הטיפול יכולה להעיר תהליכים שהמתינו ולפתוח שוב אפשרות לקבל פסיקות. בסיום הטיפול המעבד טוען את הנתונים מהמחסנית, מכבה את בקשת הפסיקה וממשיך מההוראה שלאחר זו שעוררה את הפסיקה.
שגרת הטיפול בפסיקה (ISR, Interrupt Service Routine) היא הקוד שרץ כשמתקבלת פסיקה. במערכות ישנות שגרת הטיפול חסמה את המעבד מפעולות נוספות. במערכות מודרניות שגרות הטיפול מחולקות לשתי רמות: רמת 1 עושה את הפעולות החיוניות כדי לשחרר את הפסיקה, ורמת 2 מטפלת במידע בפירוט. שגרות רמה שנייה רצות לרוב בתהליך נפרד או בזמן פנוי, כדי לא לפגוע בביצוע התוכניות.
פסיקות מתאפיינות במקורן (פנימי או חיצוני), בעדיפות, וביכולת לחסום או לא לחסום אותן. חלק מהבעיות בטיפול בפסיקות כוללות ניהול סדר העדיפויות, שמירת המצב והימנעות מאיבוד בקשות.
תהליך טיפוסי של I/O באמצעות פסיקות עובד כך: מנהל ההתקן (device driver) מקבל בקשת קלט/פלט מהמערכת ומעביר אותה לבקר ההתקן. הבקר מבצע את הפעולה באופן עצמאי. כשהפעולה מסתיימת הבקר יוצר אות פסיקה. המעבד קולט את הפסיקה ומעביר את השליטה למטפל הפסיקות. המטפל מעבד את הנתונים ומחזיר את השליטה למעבד, שהמשך את המשימה שנותקה. כך המעבד יכול לבצע משימות אחרות בזמן שה‑I/O מתבצע. זה טוב יותר מאשר המתנה פעילה (polling), וכך משפרים ביצועים ויעילות.
פסיקה היא אות שמגיע למעבד. האות אומר: עצור רגע ועשה דבר דחוף. אחרי הטיפול המעבד חוזר למה שהיה עושה.
המילה "פסיקה" לקוחה מהמילה "הפסקה".
התוכנית נטענת לזיכרון. המחשב קורא פקודות אחת אחרי השנייה. הכתובת של הפקודה הבאה נשמרת במונה הפקודות (PC). אם קורה משהו לא צפוי, המחשב עובר לטפל בזה קודם.
יש פסיקות שמגיעות מהמכשירים, כמו מקלדת או שעון. יש פסיקות שמגיעות בגלל שגיאה במחשב, כמו חלוקה באפס. יש גם פסיקות שמפעילה תוכנה במכוון.
כשמגיעה פסיקה, המעבד שומר מה הוא עשה. אחר כך הוא מריץ קוד שנקרא שגרת הטיפול (ISR). בסוף החזרה, המעבד ממשיך לעבוד מאיפה שהפסיק.
בעזרת פסיקות המעבד לא צריך לחכות שהדיסק יסיים. הוא יכול לעבוד על דברים אחרים. כשה‑I/O מוכן, המעבד מקבל פסיקה ומטפל בנתונים. זה חוסך זמן ומשפר את היעילות.
תגובות גולשים