Smart-World Surf
🔬 הרחבה — צלילה לעומק

החלפת הקשר (Context Switch)

בהאוניברסיטה הפתוחה · Israel
🧭 המושג הזה בכל הקורסים →

שדרגו את הדף עם קובץ

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

אם לא סימנתם — הקובץ נקרא לחילוץ עובדות בלבד ואז נמחק מהמערכת (זכויות יוצרים). העובדות שנלמדו נשארות ומשפרות את הקורס.

החלפת הקשר (Context Switch) – צלילה עמוקה לקורס 20594

בקורס "מערכות הפעלה" (20594) של האוניברסיטה הפתוחה, המושג "החלפת הקשר" (Context Switch) הוא אבן יסוד קריטית, והבנתו לעומק חיונית להצלחה במבחנים. סקירת מבחני עבר (כמו אלו משנים 1999, 2000, 2001, 2002, 2004, 2005, 2009, 2012) מראה כי האוניברסיטה הפתוחה מדגישה שאלות הדורשות הבנה תהליכית ומעשית של המנגנון. שאלות נפוצות עשויות לכלול תיאור מפורט של שלבי ההחלפה, זיהוי המידע הנשמר והנטען, הסבר הגורמים המפעילים החלפת הקשר, וניתוח השפעותיה על ביצועי המערכת. ההתמקדות היא לא רק ב"מה" אלא גם ב"איך" וב"למה", עם דגש על ההשלכות הפרקטיות של המנגנון.

הגדרה ומהות

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

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

מדוע החלפת הקשר חיונית?

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

מנגנון החלפת הקשר: הצעדים המפורטים

החלפת הקשר היא פעולה המבוצעת במצב ליבה (Kernel Mode) וכוללת מספר שלבים:

  1. אירוע מפעיל: החלפת הקשר נגרמת על ידי אירוע כלשהו, כגון פסיקת טיימר (שפגה פרוסת הזמן של התהליך), קריאת מערכת (System Call) שגורמת לתהליך לחכות (למשל, קריאה/כתיבה לדיסק), או פסיקת חומרה אחרת.
  2. שמירת מצב התהליך הנוכחי: מערכת ההפעלה שומרת את כל המידע הקריטי של התהליך הרץ ב-PCB שלו. מידע זה כולל:
    • אוגרי המעבד (CPU Registers)
    • מונה התוכנית (Program Counter - PC)
    • מצביע המחסנית (Stack Pointer - SP)
    • מצב התהליך (רץ, ממתין, מוכן)
    • מידע ניהול זיכרון (כגון מצביע לטבלת הדפים)
  3. בחירת התהליך הבא: מתזמן המעבד (CPU Scheduler) בוחר את התהליך הבא שייכנס לריצה, על פי אלגוריתם התזמון הנהוג.
  4. טעינת מצב התהליך הבא: מערכת ההפעלה טוענת את המידע השמור מה-PCB של התהליך הנבחר אל אוגרי המעבד, מונה התוכנית, מצביע המחסנית וכו'.
  5. העברת הבקרה: המעבד מתחיל לבצע את ההוראות של התהליך החדש מנקודת העצירה הקודמת שלו.

עלויות והשפעות על ביצועים

תקורה (Overhead): החלפת הקשר אינה פעולה חינמית. היא כרוכה בתקורה משמעותית של זמן מעבד, מכיוון שהמעבד מבזבז זמן על שמירה וטעינה של מצבים במקום לבצע עבודה שימושית. במבחנים, נדרשת הבנה של השפעת התקורה על ביצועי המערכת, במיוחד במערכות עתירות החלפות הקשר.

העלויות העיקריות הן:

  • זמן מעבד: הזמן הנדרש לשמירה וטעינה של אוגרים ומידע אחר.
  • השפעה על מטמון (Cache): החלפת הקשר גורמת לרוב ל"החטאת מטמון" (Cache Misses) תכופות יותר, מכיוון שהתהליך החדש משתמש בנתונים שונים, מה שמצריך טעינה מחדש של נתונים מהזיכרון הראשי, פעולה איטית יותר.
  • השפעה על TLB: ברוב המקרים, החלפת הקשר בין תהליכים שונים דורשת ניקוי (flush) של ה-TLB (Translation Lookaside Buffer), מה שמוסיף לעלות הגישה לזיכרון.

החלפת הקשר בין תהליכים מול החלפת הקשר בין תהליכונים

החלפת הקשר בין תהליכים

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

החלפת הקשר בין תהליכונים (באותו תהליך)

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

🔗 מושגים קשורים

מושגים נוספים מאותו קורס

מערכת הפעלה (Operating System) קריאת מערכת (System Call) תהליך (Process) בלוק בקרת תהליך (Process Control Block - PCB) חוט (Thread) תזמון מעבד (CPU Scheduling) מצב מרוץ (Race Condition) קטע קריטי (Critical Section) מנעול (Mutex) סמפור (Semaphore) מבוי סתום (Deadlock) אלגוריתם הבנקאי (Banker's Algorithm) זיכרון וירטואלי (Virtual Memory) דפדוף (Paging) פילוח (Segmentation) כשל עמוד (Page Fault) אלגוריתם החלפת עמודים (Page Replacement Algorithm) סחף (Thrashing) מערכת קבצים (File System) בלוק בקרה של קובץ (File Control Block - FCB) DMA (Direct Memory Access) מנהל התקן (Device Driver) תזמון דיסק (Disk Scheduling) וירטואליזציה (Virtualization)

📝 מבחנים מהקורס

האוניברסיטה הפתוחה · תרגלו מול המבחנים האמיתיים