החלפת הקשר

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

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

קיימים שלושה תרחישים בהם יש צורך בהחלפת הקשר:
 במחשב הפועל בריבוי משימות, קיים סדרן תוכניות (scheduler) הקובע את סדר הרצת התוכניות ומקצה "זמן מעבד" לכל תהליך. כש"זמן מעבד" של תהליך אחד מסתיים, מופעלת פסיקה שתגרור החלפת הקשר.
 ארכיטקטורות מסוימות (למשל ארכיטקטורת x86 של אינטל) הן מונחות-פסיקות. משמעות הדבר היא שאם המעבד צריך לבצע קריאה מהדיסק, למשל, הוא ישלח את בקשת הקריאה ויעבור לבצע פעולות אחרות במקום להמתין. עם סיום הקריאה מהדיסק תופעל פסיקה שתגרור החלפת הקשר. הפסיקה מהדיסק תטופל על ידי שגרת טיפול בפסיקה.
 במעבר בין מצב משתמש (user mode) למצב גרעין (kernel mode), תלוי במערכת ההפעלה, תיתכן החלפת הקשר.

קטגוריה:תהליכים (מדעי המחשב)