החלפת הקשר

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

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

מתי תבוצע החלפת הקשר?[עריכת קוד מקור | עריכה]

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

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