Remove ads
אות המגיע למעבד, מצד רכיב חומרה או תוכנה ומורה להפסיק תהליך מסוים מוויקיפדיה, האנציקלופדיה החופשית
במחשוב, פסיקה (באנגלית Interrupt; לפי האקדמיה ללשון העברית: פְּסָק[1]) היא אות המגיע למעבד, מצד רכיב חומרה או תוכנה ומורה להפסיק תהליך מסוים כדי לעבד תהליך אחר שטיפולו חשוב יותר. לאחר מכן המחשב יחזור לעבד את התהליך שהופסק.
בעת קבלת הפסיקה משהה המחשב את ביצועה הסדרתי של התוכנית, כדי להפעיל שגרת טיפול בפסיקה.
לאחר הטיפול בפסיקה, ממשיך המחשב בביצוע הסדרתי של התוכנית; הדבר דומה לאדם המבצע מלאכה כלשהי, ומפסיק כדי לענות לשיחת טלפון, ולאחר סיום השיחה, ממשיך במלאכתו מהנקודה שהופסקה.
פסיקות תוכנה נמצאות בשימוש נרחב במחשבים הפועלים בריבוי משימות ומהוות הפסקת פעולת תוכנית מחשב שלא דרך בקרת זרימה.
המונח פסיקה נגזר מן המילה הפסקה, בעקבות interrupt האנגלית.
בעת הפעלת תוכנית טוענת מערכת ההפעלה את התוכנית לזיכרון. כל פקודה בשפת מכונה נמצאת בתא זיכרון המכיל קידוד למהות הפקודה שיש לבצע ואת כתובות הזיכרון הרלוונטיות לפקודה זו. לאחר הטענת התוכנית לזיכרון מבוצעות הפקודות באופן סדרתי בזו אחר זו; ביצוע כל פקודה נקרא "מחזור עבודה", והוא מורכב משלושה חלקים עיקריים: "מחזור פסיקה", "מחזור הבאה" ו"מחזור ביצוע". כתובת הזיכרון המכילה את הפקודה הבאה שיש לבצע נשמרת באוגר מונה הפקודות (PC – Program Counter) והפקודה שיש לבצע נקראת מהזיכרון לאוגר הנקרא MBR – Memory Buffer Register.
המחשב מבצע סדרת פעולות זו בלולאה. כאשר ישנה הפרעה לביצוע התוכנית הרגיל, הנגרמת על ידי אירוע לא-צפוי המעורר פסיקה (כגון הקשה על תו במקלדת או חלוקה באפס) עובר המחשב לביצוע מחזור פסיקה לאחר מחזור הביצוע (ולפני מחזור ההבאה) ומטפל בפסיקה. מטרת הפסיקות היא לאפשר טיפול באירועים, תקינים או בלתי תקינים, שאינם חלק מהביצוע הסדרתי של התוכנית.
ניתן לחלק את הפסיקות למספר סוגים:
פסיקות מאפשרות לבצע תקשורת בין התקני קלט/פלט לתהליכים. בפסיקות אסינכרוניות מופרעת ריצת התוכנית כדי להעביר מידע מהתקן חומרה כלשהו למעבד. התקן שעון, למשל, מעביר בקשת פסיקה בקבועי זמן ידועים, המאפשרים למערכת למדוד את הזמן שעבר בין פעולות ולתזמן את ריצת התוכניות. בפסיקות סינכרוניות מעביר התקן כלשהו הודעה למערכת. כאשר מתבצעת חלוקה באפס, גורמת יחידת העיבוד המתמטית להעלאת פסיקה כדי לטפל בשגיאה הנוצרת. בפסיקות יזומות מעבירה התוכנה באמצעות פקודה מיוחדת את מספר הפסיקה שיש לעורר ובאופן זה מעבירה מידע להתקני קלט/פלט.
בתהליכים מסוימים נעשה שימוש ביותר מסוג פסיקה אחד: בעת כתיבת מידע לכונן דיסקטים, היכול לכתוב בית אחד בכל פעם, מעבירה התוכנית את המידע המיועד לכתיבה יחד עם המידע הנלווה (הפעולה לביצוע, ההתקן לכתיבה ומענו) לאוגרים המתאימים בבקר הכונן ומפעילה בקשת פסיקה יזומה כדי להתחיל את פעילות הבקר. כאשר כונן הדיסקטים מסיים את פעולתו, הוא מעורר בקשת פסיקה (IRQ) א-סינכרונית דרך בקר הפסיקות של המעבד. בהתאם למספר הפסיקה פונה המעבד לטבלת הפסיקות הנמצאת בזיכרון ומפעיל את שגרת הטיפול המתאימה. בגמר שגרת הטיפול מודיע המעבד לבקר הפסיקות שהטיפול בפסיקה הסתיים, ובקר הפסיקות מכבה את בקשת הפסיקה.
כאשר מנגנון הפסיקות ממומש דרך המעבד, מחברים בקר פסיקות בין ההתקנים המעוררים את הפסיקה לכניסת הפסיקות של המעבד, ובאופן זה ניתן לרבב מספר פסיקות כך שניתן לטפל בהן לפי חוקיות כלשהי. כאשר המנגנון ממומש באמצעות הזיכרון, ממפים את הפסיקות לתאים ידועים בזיכרון, כך ששינוי מצב התא מעיד על התעוררות פסיקה.
פסיקות משמשות בדרך כלל לשרת תזמונים בחומרה, העברת נתונים לאחסון וממנו (למשל, דיסק I/O) וממשקי תקשורת (כגון UART ו-Ethernet), טיפול באירועי מקלדת ועכבר, וכדי להגיב לכל אירוע אחר רגיש לזמן כנדרש על ידי מערכת האפליקציה. פסיקות שאינן ניתנות למִסּוּךְ (non masking) משמשות בדרך כלל כדי להגיב לבקשות בעדיפות גבוהה כגון פסק זמן של שעון Watchdog, אותות כיבוי ומלכודות (אנ').
טיימרי חומרה משמשים לעיתים קרובות ליצירת הפרעות מחזוריות. ביישומים מסוימים, פסיקות כאלה נספרות על ידי מטפל הפסיקות (אנ') כדי לעקוב אחר הזמן המוחלט או שחלף, או משמשות את מתזמן המשימות של מערכת ההפעלה לניהול ביצוע של תהליכים רצים, או שניהם. פסיקות תקופתיות משמשות בדרך כלל גם כדי להפעיל דגימה מהתקני קלט כגון ממירים אנלוגיים לדיגיטליים, ממשקי מקודד תוספתיים וכניסות GPIO, ולתכנת התקני פלט כגון ממירים דיגיטליים לאנלוגיים, בקרי מנוע ויציאות GPIO.
פסיקת דיסק מסמנת את השלמת העברת נתונים מהציוד ההקפי של הדיסק או אליו. זה עלול לגרום לתהליך לרוץ כשהוא ממתין לקריאה או כתיבה. פסיקת כיבוי חוזה אובדן מתח העומד בפתח, ומאפשרת למחשב לבצע כיבוי מסודר בזמן שעדיין נשאר מספיק כוח לעשות זאת.
פסיקות מקלדת גורמות בדרך כלל לאחסן הקשות על מנת ליישם את ההקלדה.
פסיקות משמשות לפעמים כדי לחקות הוראות שאינן מיושמות במחשבים מסוימים. לדוגמה, הוראות נקודה צפה עשויות להיות מיושמות בחומרה במערכות מסוימות ולחקות אותן במערכות להן עלות נמוכה יותר. מקרה נוסף, ביצוע של הוראת נקודה צפה שלא הוטמעה יגרום לפסיקת חריגה של "הוראה בלתי חוקית". המנגנון המטפל בפסיקות יממש את פונקציית הנקודה הצפה בתוכנה ולאחר מכן יחזור לתוכנית שקיבלה פסיקה כאילו בוצעה ההוראה המיושמת בחומרה. זה מספק ניידות תוכנת יישומים על פני כל הקו.
ניתן לחלק את פסיקות החומרה לשני סוגים:
כאשר התקן מעוניין לעורר פסיקה, הוא מעביר בקשת פסיקה דרך אחת הכניסות של בקר הפסיקות. כל התקן המסוגל לעורר פסיקה מחובר לבקר הפסיקות דרך כניסה אחת המקצה לו מספר מזהה. בקר הפסיקות מעביר את בקשת הפסיקה למעבד דרך כניסה בודדת או זוגית במעבד, הנקראת "כניסת הפסיקות". המעבד בודק אחת לכמה זמן את כניסת הפסיקות שלו; כאשר הוא מגלה שקיימת בקשה לפסיקה, הוא שומר את מצב המערכת (הכולל את האוגרים, את הפקודה הבאה לביצוע וכתובות הזיכרון הרלוונטיות) במחסנית (סוג המחסנית תלוי במערכת ההפעלה) ומתשאל, באפיק מידע אחר, את בקר הפסיקות לגבי מספר הפסיקה. לאחר קבלת מספר הפסיקה מעביר המעבד את המערכת למצב מיוחס ומחפש בטבלת הפסיקות את שגרת הטיפול המתאימה.
לאחר העברת המערכת למצב מיוחס בודקת מערכת ההפעלה בטבלת הפסיקות כיצד לטפל בשגרה. לרוב, מכילה טבלת הפסיקות פקודות קפיצה לכתובות המכילות שגרות לטיפול בפסיקה שהתעוררה. מערכת ההפעלה טוענת את השגרה הנמצאת בכתובת שהתקבלה מטבלת הפסיקות. מערכות הפעלה מודרניות מחזיקות מבנה נתונים בליבה המכיל את ההפניות לשגרות הרלוונטיות. ניתן לשנות את טבלת הפסיקות כך שתפנה לשגרה אחרת מזו המוגדרת כברירת מחדל[2]. לאחר ביצוע שגרת הטיפול החדשה נהוג לקרוא לשגרה הישנה כדי להימנע מבעיות תאימות בין תוכנות. הטיפול בפסיקה יכול לכלול ביצוע שגרות טיפול, הערת תוכניות שביצעו המתנה רדומה והפעלת מגנון הפסיקות כך שתתאפשר קבלת פסיקות מחדש (בחלק מהארכיטקטורות). בגמר הטיפול המעבד טוען את הנתונים שנשמרו במחסנית, מכבה את בקשת הפסיקה ומחזיר את הבקרה להוראה הבאה אחרי זו שממנה נלקחה. ברוב המקרים, הפיקוח חוזר לתוכנית במרחב המשתמש.
שגרת הטיפול בפסיקה (Interrupt Service Routine, ISR) היא שגרה המופעלת בעקבות קבלת פסיקה. במערכות הפעלה ישנות, בעת ביצוע שגרת הטיפול בפסיקה היה המעבד חסום בפני ביצוע פעולות נוספות. מסיבה זו, במערכות הפעלה מודרניות (ובמיוחד במערכות זמן אמת) שגרות הטיפול מחולקות לשני סוגים: שגרות טיפול מרמה ראשונה, ושגרות טיפול מרמה שנייה. שגרות הטיפול מרמה ראשונה מבצעות את הפעולות ההכרחיות לשחרור הפסיקה, ומתזמנות את ריצת שגרות הטיפול מהרמה השנייה, שאחראיות לטפל במידע שהתקבל באמצעות הפסיקה. בזמן הטיפול באמצעות שגרות מרמה ראשונה מופסקת ריצת התוכנית, דבר העשוי לפגוע בביצועיה. שגרות טיפול מרמה שנייה רצות לרוב מתוך תהליכון נפרד או בזמן הפנוי של המערכת.
פרט לחלוקת הפסיקות לפי מקור הפסיקה (פנימית או חיצונית) קיימים מספר מאפיינים נוספים לפסיקות:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.