ניהול משאבי מערכת הפעלה ותהליכים
הוצג| English | משמעות |
|---|---|
| process/ˈprəʊses/ | תהליך |
| scheduler/ˈʃedjʊlə/ | מזמן |
| multi-tasking/ˈmʌlti ˈtæskɪŋ/ | ריבוי משימות |
| spooling/ˈspuːlɪŋ/ | המתנה |
| caching/ˈkæʃɪŋ/ | מאגר מעבר (cache) |
| round robin/raʊnd ˈrɒbɪn/ | סיבוב |
| context switch/ˈkɒntekst swɪtʃ/ | החלפת הקשר |
| process control block/ˈprəʊses kənˈtrəʊl blɒk/ | בלוק בקרת תהליך |
מדוע העכבן עדיין נע כשהכל קפא
- תוכנית נתקעת. החלון לא יתחדש, הספינר יפסיק, כלום לא מגיב. עם זאת, חיצן העכבן עדיין מחליק על המסך בדיוק כמו לפני כן.
- זה אומר שהמערכת הפעילה מעבירה הודעה: המכונה לא נתקעה, אלא תהליך אחד כן. המתזמן עדיין מחלק פרוסות מעבד, והתוכנית הקפואה פשוט אינה עושה שימוש מועיל בפרוסות שלה.
- כל המשאבים במכונה משותפים כך: המעבד בזמן, הזיכרון במרחב, ההדפסן בתור.
- שיעור זה מראה כיצד מערכת הפעלה מקבלת את המקסימום ממשאבים אלו, וכיצד היא מנהלת תהליך מיצירה ועד לסיום.
לקחת את המקסימום ממשאבים
- רב-ריצות: המעבד מוחלף במהירות בין תהליכים, כך שרבים נראים כאילו רצים בו-זמנית, למרות שרק אחד מתבצע בכל רגע נתון.
- דפייה: זיכרון מועבר בין RAM לבין דיסק כדי לאפשר פתיחה של יותר תוכניות מאשר הזיכרון הפיזי מאפשר.
- הקצאה (Spooling): פלט למכטה איטית מוקץ בדיסק, כך שהמעבד לעולם לא מחכה להדפסן. מטמון (Caching) שומר נתונים שהשתמשנו בהם לאחרונה בזיכרון מהיר כך שלא יהיה צורך למשוך אותם שוב.
- מערכת הפעלה גם מסתרת את כל זה מאחורי ממשק משתמש, קו פקודות או GUI.
ריבוי משימות מאפשר לכמה תוכניות להיראות כאילו הן רוצות בו-זמנית באמצעות:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
מערכת הפעלה מחליפה במהירות את המעבד היחיד בין תהליכים כך שכולם ייראו כמתקדמים יחד.
דוגמה מופתרת: מדוע הקצאה עוזרת
- הסבר כיצד הקצאה משפרת את השימוש במשאבי המחשב. [3]
- הדפסה היא אלפי פעמים איטית מהמעבד, ולכן תוכנית ששולחת פלט ישירות תחכה עליו והמעבד ישבת בלתי פעיל.
- עם ספולिंग, הפלט נכתב במהירות לתור על הכונן, והתוכנית ממשיכה מיד.
- תהליך נפרד מזין את המדפסת בקצבו העצמי, ומספר משימות יכולות לעמוד בתור בעוד מעבד עוסק בעבודה אחרת. ציין את ההתקן האיטי, את התור ומה שמעבד עושה במקום זאת.
Spooling עוזר למערכת מכיוון که:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ריצון סוגר (Spooling) ממין עבודות הדפסה לדיסק כדי שהמעבד המהיר לא יופסל על ידי ההדפסן האיטית.
אילו טכניקות עוזרות למערכת הפעלה למצות את המקסימום מהמשאבים שלה? סמן את כל האפשרויות הרלוונטיות.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
חלוקת זמן, תור למכשירים איטיים ושמירה על נתונים חמים בקרבה. ביטול תהליכים המתנאים יגרום לאובדן העבודה של המשתמש ולא ישפר את התועלת.
תהליכים ומתכנן
- תהליך הוא תוכנית בביצוע: הקוד שלה, מצבה הנוכחי, הזיכרון והקובצים הפתוחים בה. תוכנית בכונן אינה תהליך; תוכנית רצה היא.
- המתכנן מחליט איזה תהליך מוכן ירצה הבא וכמה זמן. המטרות שלו הן לשמור על מעבד עסוק, להגיב במהירות למשתמשים אינטראקטיביים ולהיות הוגן.
- סיבובית (Round robin) מעניקה לכל תהליך מוכן חלוקת זמן קבועה ואז שולחת אותו לסוף התור: פשוטה, הוגנת ומגיבה. מדיניותות אחרות הן ראשון מגיע, ראשון משרת, קצר משימה תחילה וקצר זמן שנותר.

כולם מקבלים תור, ואף אחד לא אחזיק את המעבד
תזמון גלגל-סביב (Round-robin) נותן לכל תהליך מוכן חתיכת זמן קבועה, ואז מזיז אותו לקצה התור — מה שהופך אותו להגיוני ותגובתי.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
חתיכות זמן שוות בתור מונעות מכל תהליך אחד לתפוס את המעבד, ולכן תוכניות אינטראקטיביות נשארות תגובתיות.
מהו תהליך?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
הקובץ על הדיסק הוא תוכנית; ברגע שהוא מוטען ופעיל, עם מצב משלו, הוא הופך לתהליך.
מצבי תהליך
- חדש: נוצר. מוכן: מסוגל לרץ, מחכה רק למעבד. רץ: מבצע כעת. חסום: מחכה לדבר אחר, בדרך כלל כניסה/יציאה. סופק: הסתיים.
- המעברים הם מה שהבחינה שואלת. מרץ למוכן כאשר חלוקת הזמן מסתיימת. מרץ לחסום כאשר התהליך מבקש I/O. מחסום למוכן כאשר ה-I/O נגמר. ממוכן לרץ כאשר המתכנן בוחר אותו.
- שים לב לחוסר הסימטריה: תהליך חסום לעולם לא חוזר ישירות לרץ. הוא מתחבר לתור המוכנים וממתין לתור שלו.

חמש מצבים, והסיבות לכל חץ
התאם כל מצב תהליך למשמעות שלו.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
תהליך עובר במחזוריות: מוכן → פעיל → (מושהה) → מוכן, עד להסרתו.
דוגמה פתורה: עקוב אחר תהליך
- תהליך רץ כאשר הוא מבקש לקרוא קובץ. תאר מה שקורה לו.
- הוא עובר מרץ לחסום, משום שהוא לא יכול להמשיך עד שהנתונים יגיעו, והמתכנן מיידי מעניק את המעבד לתהליך מוכן אחר במקום לחכות.
- כאשר הכונן סיים, התהליך עובר מחסום למוכן. הוא לא ממשיך מיד; הוא מצטרף לתור המוכנים.
- מאוחר יותר המתכנן בוחר אותו, והוא עובר ממוכן לרץ, וממשיך בדיוק מהנקודה שבה עצר.
חיי התהליך
תקף סביב המעגל בתהליך שנעה. הוא רק רץ כשהמתכנן בוחר אותו; צורך ב-I/O שולח אותו למצב חסום, והסתיימות זמן הביצוע שלו שולחת אותו חזרה למצב מוכן — סביב ומסביב עד שהסתיים.
תהליך פעיל מבקש לקרוא קובץ. סדר את מה שקורה לו.
Difficulty 3/5 · 200 coins + a small bonus on first completion today
תהליך מושהה לעולם לא חוזר ישירות לפעיל: הוא מצטרף שוב לתור המוכנים וממתין לתורו.
החלפת הקשר
- כדי לשנות את התהליך הרץ, מערכת ההפעלה שומרת את מצב התהליך הנוכחי, הרשמים, נגדן התוכנית והסטטוס שלהם, ב-בלוק הבקרה בתהליך, ולאחר מכן מטעין את מצב התהליך הבא מבלוק הבקרה שלו.
- זהו החלפת הקשר. יש לה עלות אמיתית: במהלכה המעבד עוסק בעבודות תחזוקה ולא בעבודה של המשתמש.
- לכן, חתיכת הזמן היא איזון. אם היא ארוכה מדי, תוכניות אינטראקטיביות מרגישות איטיות; ואם היא קצרה מדי, המכונה מבזבזת את זמנה בהחלפת הקשר במקום לחשב.
החלפת הקשר כוללת:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
מערכת ההפעלה שומרת את הרגיסטרים/PC של התהליך הפעיל ב-PCB שלו וטוענת את של התהליך הבא — עלות קטנה בכל החלפה.
בעת החלפת הקשר, רגיסטרים וProgram Counter של תהליך נשמרים בתוך ה-____ שלו.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
מצב התהליך הבא נטען לאחר מכן מהבלוק הספציפי שלו. הפעולות של שמירה וטעינה הן עבודה אמיתית, והן הגורם לכך שחילופי תהליכים לוקחים זמן.
הפרעות והליבה
- ה-ליבה, ליבת מערכת ההפעלה, היא זו שמבצעת בפועל זאת: היא מגיבה להפרעות מכשירים ותוכניות, והפרעה היא מה שמחזיר שליטה למערכת ההפעלה מתהליך רץ.
- הפרעת טיימר בסוף חתיכת הזמן היא מה שמאפשר תכנון פוגעני (preemptive) בכלל; ללאה תוכנית שלא מוותרת לעולם תשמור על המעבד לנצח.
- זוהי התשובה לפאזול הפתיחה: התוכנית הקפואה לא תופסת יותר ממעבד מחלקת הזמן שלה, ולכן העכבר ממשיך לנוע.
סימונים נופלים מהיד
- תהליך הוא תוכנית הנמצאת בביצוע, ולא הקובץ על הכונן.
- חסום למוכן, לעולם לא חסום ישירות לריצה. המתכנן בוחר מתי הוא ירץ שוב.
- החלפת הקשר שומרת ומשחזרת מצב דרך בלוק הבקרה בתהליך, והיא עולה בזמן.
- רב-משימהי (Multi-tasking) אומר שתהליכים לוקחים תור במהירות כזו שהם נראים מקבילים, ולא שאם הם באמת מבוצעים בו-זמנית על ליבה אחת.
הבנתך מושלמת
- מערכת ההפעלה מקסימה שימוש במשאבים על ידי רב-משימהי, חלוקה (paging), הזרקה (spooling) לתור דיסק ומטמון (caching)
- תהליך הוא תוכנית בביצוע; המתכנן בוחר את הבא ממוכן, כאשר סירוביות מעניקה לכל אחד חתיכת זמן קבועה
- מצבים: חדש, מוכן, רץ, חסום, מופסק: פתיחת חתיכת זמן שולחת רץ למוכן, בקשת I/O שולחת אותו לחסום, והשלמת I/O שולחת אותו חזרה למוכן
- החלפת הקשר שומרת ומשחזרת מצב דרך בלוק הבקרה בתהליך ועולה בזמן, ולכן אורך חתיכת הזמן הוא איזון