logo

החלפת הקשר במערכת ההפעלה (מערכת הפעלה)

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

הצורך בהחלפת הקשר

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

להלן הסיבות המתארות את הצורך במעבר הקשר במערכת ההפעלה.

  1. המעבר של תהליך אחד לתהליך אחר אינו ישירות במערכת. החלפת הקשר עוזרת למערכת ההפעלה שעוברת בין התהליכים המרובים להשתמש במשאב של ה-CPU כדי לבצע את המשימות שלו ולאחסן את ההקשר שלו. נוכל לחדש את השירות של התהליך באותה נקודה מאוחר יותר. אם לא נאחסן את הנתונים או ההקשר של התהליך הפועל כעת, הנתונים המאוחסנים עלולים ללכת לאיבוד בעת מעבר בין תהליכים.
  2. אם תהליך בעדיפות גבוהה נכנס לתור המוכן, התהליך הפועל כעת ייסגר או ייעצר על ידי תהליך בעדיפות גבוהה כדי להשלים את המשימות שלו במערכת.
  3. אם תהליך פועל דורש משאבי קלט/פלט במערכת, התהליך הנוכחי יועבר על ידי תהליך אחר לשימוש במעבדים. וכאשר דרישת ה-I/O מתקיימת, התהליך הישן עובר למצב מוכן להמתנה לביצועו במעבד. החלפת הקשר מאחסנת את מצב התהליך כדי לחדש את המשימות שלו במערכת הפעלה. אחרת, התהליך צריך להתחיל מחדש את הביצוע שלו מרמת ראשי התיבות.
  4. אם מתרחשות פסיקות כלשהן במהלך הפעלת תהליך במערכת ההפעלה, סטטוס התהליך נשמר כאוגרים באמצעות החלפת הקשר. לאחר פתרון ההפסקות, התהליך עובר ממצב המתנה למצב מוכן כדי לחדש את ביצועו באותה נקודה מאוחר יותר, שבה מתרחשת מערכת ההפעלה שהופסקה.
  5. החלפת הקשר מאפשרת למעבד יחיד לטפל בבקשות תהליכים מרובות בו זמנית ללא צורך במעבדים נוספים.

דוגמה להחלפת הקשר

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

מפעילים החלפת הקשר

להלן שלושת סוגי הטריגרים של החלפת הקשר כדלקמן.

סימן מים במילה
  1. מפריע
  2. ריבוי משימות
  3. מתג ליבה/משתמש

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

ריבוי משימות : החלפת הקשר היא המאפיין של ריבוי משימות המאפשר להחליף את התהליך מה-CPU כך שניתן יהיה להפעיל תהליך אחר. בעת החלפת התהליך, המצב הישן נשמר כדי לחדש את ביצוע התהליך באותה נקודה במערכת.

מתג ליבה/משתמש : הוא משמש במערכות ההפעלה בעת מעבר בין מצב המשתמש, לבין מצב הקרנל/משתמש מתבצע.

מהו ה-PCB?

PCB (Process Control Block) הוא מבנה נתונים המשמש במערכת ההפעלה לאחסון כל המידע הקשור לתהליך. לדוגמה, כאשר נוצר תהליך במערכת ההפעלה, מידע מעודכן של התהליך, מיתוג מידע של התהליך, הסתיים תהליך ב-PCB.

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

ישנם מספר שלבים הכרוכים בהחלפת הקשר של התהליכים. הדיאגרמה הבאה מייצגת את מיתוג ההקשר של שני תהליכים, P1 ל-P2, כאשר מתרחשים פסיקה, צרכי I/O או תהליך מבוסס עדיפות בתור המוכן של PCB.

מהו מיתוג ההקשר במערכת ההפעלה

כפי שאנו יכולים לראות בתרשים, בתחילה, תהליך P1 פועל על ה-CPU כדי לבצע את המשימה שלו, ובמקביל, תהליך אחר, P2, נמצא במצב מוכן. אם התרחשה שגיאה או הפרעה או שהתהליך דורש קלט/פלט, תהליך P1 מחליף את מצבו מהפעלה למצב המתנה. לפני שינוי המצב של תהליך P1, החלפת הקשר שומר את ההקשר של תהליך P1 בצורה של אוגרים ומונה התוכנית ל- PCB1 . לאחר מכן, הוא טוען את המצב של תהליך P2 ממצב מוכן של PCB2 למצב ריצה.

python bytes למחרוזת

הצעדים הבאים ננקטים בעת החלפת תהליך P1 לתהליך 2:

  1. ראשית, מיתוג ההקשר הזה צריך לשמור את המצב של תהליך P1 בצורה של מונה התוכניות והאוגרים ל-PCB (Program Counter Block), שנמצא במצב פועל.
  2. כעת עדכן את PCB1 לתהליך P1 ומעביר את התהליך לתור המתאים, כגון תור מוכן, תור קלט/פלט ותור המתנה.
  3. לאחר מכן, תהליך נוסף נכנס למצב ריצה, או שאנו יכולים לבחור תהליך חדש ממצב מוכן, שאותו יש לבצע, או לתהליך יש עדיפות גבוהה לביצוע המשימה שלו.
  4. כעת, עלינו לעדכן את ה-PCB (Process Control Block) עבור התהליך הנבחר P2. זה כולל החלפת מצב התהליך ממצב מוכן למצב פועל או ממצב אחר כמו חסום, יציאה או השעיה.
  5. אם ה-CPU כבר מבצע תהליך P2, עלינו לקבל את המצב של תהליך P2 כדי לחדש את ביצועו באותה נקודת זמן שבה מתרחשת הפסקת המערכת.

באופן דומה, תהליך P2 כבוי מה-CPU כך שתהליך P1 יוכל לחדש את הביצוע. תהליך P1 נטען מחדש מ-PCB1 למצב ריצה כדי לחדש את המשימה שלו באותה נקודה. אחרת, המידע הולך לאיבוד, וכאשר התהליך מבוצע שוב, הוא מתחיל בביצוע ברמה הראשונית.