החלפת הקשר

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש

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

מתי תבוצע החלפת הקשר?

קיימים שלושה תרחישים בהם יש צורך בהחלפת הקשר:

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