הבדל בין מבוי סתום לרעב

תוכן עניינים:

הבדל בין מבוי סתום לרעב
הבדל בין מבוי סתום לרעב

וִידֵאוֹ: הבדל בין מבוי סתום לרעב

וִידֵאוֹ: הבדל בין מבוי סתום לרעב
וִידֵאוֹ: הכוורת | יזמות חברתית 2024, נוֹבֶמבֶּר
Anonim

Deadlock vs Starvation

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

מה זה מבוי סתום?

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

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

ההבדל בין מבוי סתום לרעב
ההבדל בין מבוי סתום לרעב
ההבדל בין מבוי סתום לרעב
ההבדל בין מבוי סתום לרעב

מהו הרעבה?

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

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

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

מבוי סתום נגד הרעבה
מבוי סתום נגד הרעבה
מבוי סתום נגד הרעבה
מבוי סתום נגד הרעבה

ה"פילוסופים של האוכל"

מה ההבדל בין Deadlock ל-Starvation?

תהליך:

• במצב מבוי סתום, שני השרשורים או התהליכים ימתינו זה לזה ושניהם לא ימשיכו קדימה.

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

Rolling Back:

• במבוי סתום, גם שרשורים/תהליכים בעלי עדיפות גבוהה, כמו גם שרשורים/תהליכים בעדיפות נמוכה, ימתינו זה לזה בלי סוף. זה אף פעם לא נגמר.

• אבל, במצב רעב, אלה בעדיפות נמוכה ימתינו או יחזרו לאחור, אבל בעדיפות גבוהה ימשיכו.

ממתין או נעילה:

• מבוי סתום הוא המתנה מעגלית.

• רעב הוא סוג של חיה ולפעמים עוזר לצאת ממבוי סתום.

מבוי סתום ורעב:

• מבוי סתום גורם לרעב, אבל רעב לא גורם למבוי סתום.

סיבות:

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

• הרעבה מתרחשת עקב מחסור במשאבים, ניהול לא מבוקר של משאבים וסדרי עדיפויות בתהליך.

סיכום:

מבוי סתום נגד הרעבה

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

מוּמלָץ: