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

מבוי סתום (Deadlock)

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

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

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

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

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

מבוי סתום (Deadlock): צלילה עמוקה

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

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

מדוע מבוי סתום חשוב?

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

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

מבוי סתום יכול להתרחש רק אם מתקיימים בו-זמנית ארבעה תנאים:

הדרה הדדית (Mutual Exclusion)

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

החזקה והמתנה (Hold and Wait)

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

אי-נשללות (No Preemption)

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

המתנה מעגלית (Circular Wait)

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

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

אסטרטגיות לטיפול במבוי סתום

  • מניעה (Deadlock Prevention): מבטיחים שאחד מארבעת תנאי קופמן לעולם לא יתקיים. לדוגמה:
    • שבירת הדרה הדדית: לא תמיד אפשרי (למשל, מדפסת).
    • שבירת החזקה והמתנה: דרישת כל המשאבים מראש, או שחרור כל המשאבים לפני בקשת חדשים.
    • שבירת אי-נשללות: מתן אפשרות למערכת לשלול משאבים מתהליך (למשל, זיכרון).
    • שבירת המתנה מעגלית: קביעת סדר היררכי להקצאת משאבים.
  • הימנעות (Deadlock Avoidance): המערכת מקצה משאבים באופן דינמי רק אם היא יכולה להבטיח שלא ייווצר מבוי סתום. אלגוריתם הבנקאי הוא דוגמה בולטת, הדורש מידע מראש על דרישות המשאבים המקסימליות של כל תהליך.
  • זיהוי והתאוששות (Deadlock Detection and Recovery): מאפשרים למבוי סתום להתרחש, מזהים אותו (לרוב באמצעות גרף הקצאת משאבים) ונוקטים פעולות התאוששות (למשל, סיום תהליכים, שלילת משאבים).
  • התעלמות (Ostrich Algorithm): התעלמות מוחלטת מהבעיה, מתוך הנחה שהיא נדירה מספיק כדי לא להצדיק את עלות הטיפול בה (נפוץ במערכות הפעלה רבות).

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

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

מערכת הפעלה (Operating System) קריאת מערכת (System Call) תהליך (Process) בלוק בקרת תהליך (Process Control Block - PCB) החלפת הקשר (Context Switch) חוט (Thread) תזמון מעבד (CPU Scheduling) מצב מרוץ (Race Condition) קטע קריטי (Critical Section) מנעול (Mutex) סמפור (Semaphore) אלגוריתם הבנקאי (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)

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

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