ההבדל בין הקיפאון והרעב | מבוי סתום לעומת רעב
הקיפאון לעומת הרעב
ההבדל העיקרי בין הקיפאון והרעב הוא הסיבה והתוצאה היחסים ביניהם; זה מבוי סתום שגורם לרעב. עוד הבדל מעניין בין הקיפאון והרעב הוא כי הקיפאון הוא בעיה בזמן הרעב יכול, לפעמים, לעזור לצאת ממבוי סתום. בעולם המחשב, בעת כתיבת תוכנית מחשב, יהיה יותר מתהליך / חוט אחד שיפעל במקביל בזה אחר זה כדי למלא את השירות הנדרש לתוכנית. לכן, על מנת לקבל מערכת הוגנת, המתכנת צריך להיות בטוח שכל התהליכים / האשכולות יקבלו או יקבלו גישה מספקת למשאבים הדרושים להם. אם לא, יהיה קיפאון, וזה יוביל לרעב מאוחר יותר. בדרך כלל, מערכת הוגנת אינה מכילה כל קיפאון או רעב. Deadlocks ו רעב תתרחש בעיקר כאשר פתילים רבים מתחרים על משאבים מוגבלים.
-> ->מה זה הקיפאון?
קיפאון הוא מצב המתרחש כאשר שני חוטים או תהליכים ממתינים אחד לשני כדי להשלים את המשימה . הם רק לנתק אבל לא להפסיק או לסיים את המשימה שלהם. במדעי המחשב ניתן להבחין בכל מקום. במסד נתונים העסקה, כאשר שני תהליכים כל אחד בתוך העסקה שלו עדכון זהה שתי שורות של מידע, אבל בסדר הפוך, יגרום למבוי סתום. בתכנות מקביל, קיפאון עלול להתרחש כאשר שתי פעולות מתחרות יחכו זה לזה להמשיך קדימה. במערכות תקשורת, קיפאון יכול לקרות עקב אובדן או שחיתות של אותות.
כרגע, הקיפאון הוא אחת הבעיות העיקריות במערכות מרובות מחשוב מקבילי. כפתרון, מערכת נעילה הנקראת סינכרון תהליך מיושמת עבור תוכנה כמו גם חומרה.
מה זה רעב?
מן המילון של מדע הרפואה, הרעב הוא תוצאה של מחסור חמור או טוטאלי של חומרי הזנה הדרושים לתחזוקת החיים. באופן דומה, במדעי המחשב, רעב הוא בעיה המתעוררת כאשר מספר חוטים או תהליכים ממתינים עבור אותו משאב, הנקרא "קיפאון". כדי לצאת ממבוי סתום, אחד התהליכים או החוטים צריך לוותר או לחזור אחורה, כך הליך משנה או תהליך אחרים יכולים להשתמש במשאב. אם זה קורה ללא הרף את אותו תהליך או חוט צריך לוותר או לחזור בכל פעם תוך מתן תהליכים או חוטים אחרים להשתמש במשאב, ולאחר מכן את התהליך או חוט שנבחר, אשר התגלגל בחזרה יעבור מצב שנקרא רעב.לכן, כדי לצאת ממבוי סתום, הרעבה היא אחד הפתרונות . לכן, לפעמים רעב נקרא סוג של livelock . כאשר יש הרבה תהליכים או עדיפות גבוהה, תהליך עדיפות נמוכה או חוט תמיד לגווע במבוי סתום. יכולים להיות רעבים רבים כגון
רעבים במשאבים ו- מורעבים במעבד . ישנן דוגמאות נפוצות רבות על רעב. הם קוראים-סופרים בעיה בעיה פילוסופים 'הבעיה, אשר מפורסם יותר. חמישה פילוסופים שותקים יושבים ליד שולחן עגול עם קערות ספגטי. מזלגות ממוקמות בין כל זוג של פילוסופים סמוכים. כל פילוסוף צריך לחשוב ולומר לסירוגין. עם זאת, פילוסוף יכול רק לאכול ספגטי כאשר יש לו גם מזלג שמאל וימין. "פילוסופי אוכל"
מה ההבדל בין הקיפאון והרעב?
• תהליך:
• במבוי סתום, שני החוטים או התהליכים יחכו זה לזה ושניהם לא ימשיכו קדימה.
ברעב, כאשר שניים או יותר מחרוזות או תהליכים מחכים לאותו משאב, אחד יגלגל לאחור ויתן לאחרים להשתמש במשאב הראשון ואחרי חוט או רעב תהליך ינסה שוב. לכן, כל החוטים או התהליכים ימשיכו להתקדם.
• מתגלגל בחזרה:
• במבוי סתום, שתי החוטים / תהליכים בעלי עדיפות גבוהה, כמו גם הליכי משנה / תהליכי עדיפות נמוכה, יחכו זה לזה עד אינסוף. זה אף פעם לא נגמר. אבל, ברעב, אלה עדיפות נמוכה יחכו או לחזור אחורה אבל אלה עדיפות גבוהה ימשיך.
• מחכה או נעל:
• קיפאון הוא מחכה עגול.
רעב הוא סוג של חיית מחמד ולפעמים עוזר לצאת ממבוי סתום.
מבוי סתום ורעב:
קיפאון גורם לרעב, אך הרעב אינו גורם למבוי סתום.
• גורם:
• קיפאון תתרחש עקב אי הכללה הדדית, להחזיק ולהמתין, לא מראש או מחכה מעגלית.
רעב מתרחש עקב מחסור במשאבים, ניהול משאבים בלתי מבוקרת וסדרי עדיפויות בתהליך.
סיכום:
הקיפאון לעומת הרעב
הקיפאון והרעב הם חלק מהבעיות המתרחשות עקב מירוצי נתונים ותנאי גזע המתרחשים במהלך התכנות וכן ביישום החומרה. במבוי סתום, שני פתילים יחכו זה לזה ללא הרף מבלי לבצע, בעוד ברעב, חוט אחד יתגלגל לאחור ויתן לחוט השני להשתמש במשאבים. קיפאון יגרום לרעב בעוד הרעב יעזור חוט לצאת ממבוי סתום.
תמונות באדיבות:
מחשב על ידי סטיב Jurvetson מ Menlo Park, ארה"ב (CC BY 2. 0)
"פילוסופי אוכל" על ידי Bdesham (CC BY-SA 3. 0)