50 likes | 285 Views
ניתוח הבעיה: פירוק והרכבה של מספר. המספר ההפוך :. המספר :. 2 5 9 4. 2 5 9 4. תהליך ראשי. קלוט Num אתחל NewNum ל - 0 parbegin פירוק הרכבה parend. תהליך הרכבה. צרכן של Num. תהליך פירוק. 0 New. D Num mod 10.
E N D
ניתוח הבעיה:פירוק והרכבה של מספר המספר ההפוך: המספר: 2 5 9 4 2 5 9 4 אהובהתקותי, מכון ויצמן למדע
תהליך ראשי קלוט Num אתחל NewNum ל - 0 parbegin פירוק הרכבה parend אהובהתקותי, מכון ויצמן למדע
תהליך הרכבה צרכן שלNum תהליך פירוק 0 New D Num mod 10 New New*10 + D Num Num div 10 כל עוד Num > 0 בצע כל עוד Num > 0 בצע יצרן שלD דרישת תיאום 1: ייצורD וצריכתו יתבצעו לסירוגין. צרכן שלD יצרן שלNum דרישת תיאום 2: ייצור Num וצריכתו יתבצעו לסירוגין. מי המשאבים המשותפים? מה הן דרישות התיאום לגביהם? אהובהתקותי, מכון ויצמן למדע
תהליך הרכבה תהליך פירוק D Num mod 10 New New*10 + D Num Numdiv 10 צרכן שלNum wait(FullNum) wait(FullNum) כל עודNum > 0בצע כל עודNum > 0בצע signal(EmptyNum) יצרן שלD wait(EmptyD) צרכן שלD wait(FullD) signal(FullD) יצרן שלNum signal(EmptyD) wait(EmptyNum) wait(FullNum) signal(FullNum) אהובהתקותי, מכון ויצמן למדע
1 0 0 0 אתחולהסמפורים : Numמקבל את ערכו הראשוןבמשפט הקלט בתהליך הראשי. בסיבוב הראשון של הלולאה (בתהליך הפירוק) Num מקבל את ערכו השני ולכן עליו לחכות עד שתהליך ההרכבה יבצע את בדיקת התנאי על ערכו הראשון של Num. EmptyD FullD משפטwait עלהסמפורהזה מתבצע בסוף הלולאה של תהליך ההרכבה. לכןהחל מהסיבוב השני, הוא גורם לבדיקת התנאי לחכות עד ש Num יקבל אתערכו בתהליך הפירוק. EmptyNum FullNum אהובהתקותי, מכון ויצמן למדע