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