ABA


"מישהו יודע להסביר את ההבדל בין deadlock/livelock ? אני יודע ש"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #20117 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 20117
Finlandia לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.10.08
4760 הודעות, 1 פידבק
   17:19   21.07.13   
אל הפורום  
  מישהו יודע להסביר את ההבדל בין deadlock/livelock ? אני יודע ש  
 
   deadlock בעיקרון זה כששתי תהליכים א' וב' משתמשים במשאבים מסויימים A ו B בהתאמה או שסיימו להשתמש בהם ועכשיו כל אחד מהם צריך את המשאב שתפוס אצל התהליך השני... מה שקורה ששניהם מחכים ואף אחד לא יכול להמשיך בעבודה.

livelock הבנתי שזה 2 תהליכים שצריכים את אותו משאב בדיוק באותה שניה או משהו כזה אבל זה לא הכי ברור לי יש מישהו שיכול לשפוך קצת אור בנושא ?


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  deadlock inno3D 21.07.13 23:28 1
  תכניס את התמונה הזאת לראש... Zvikadori 22.07.13 00:24 2
     LIKE :] CaTz 22.07.13 01:38 3

       
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   23:28   21.07.13   
אל הפורום  
  1. deadlock  
בתגובה להודעה מספר 0
 
   זה כשיש לך מחלקה O עם 2 מתודות
מתודה אחת מפעילה את השניה (נגיד מתודה A שמקבלת בתור פרמטר את האובייקט O ומפעילה את מתודה B, ומתודה B מקבלת גם בתור פרמטר את האובייקט O)

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

ואז כל מתודה A תקועה לפני המתודה B
כי שני המחלקות מחכות שהשניה תסתיים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Zvikadori
חבר מתאריך 3.8.02
5369 הודעות
   00:24   22.07.13   
אל הפורום  
  2. תכניס את התמונה הזאת לראש...  
בתגובה להודעה מספר 0
 
   אני קורא לה המעגל - זו הדרך להשיג DEADLOCK:
https://en.wikipedia.org/wiki/File:Process_deadlock.svg

הסבר:
Pi->Rj אומר שהפרוסס ה-i מבקש את המשאב ה-j.
Rj->Pi אומר שהפרוסס ה-i ביקש וקיבל את המשאב ה-j.

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

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

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

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

בפועל, ישנה ניצולת של ה-CPU ושום תוצאה לא יוצאת מהניצולת הזו...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
CaTz
חבר מתאריך 2.10.04
14537 הודעות
   01:38   22.07.13   
אל הפורום  
  3. LIKE :]  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net