1 2 קצת מידע על הבעייה נהגתה ונפתרה על ידי דייקסטרה חומרים בעברית – דוד הראל, אלגוריתמיקה.

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

שיטות ניתוח - דוגמא משווה
מבוא למדעי המחשב לתעשייה וניהול
(Paradigm=Example) Artist unknown A group of scientists placed 5 monkeys in a cage and in the middle, a ladder with bananas on the top. קבוצת מדענים.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תיאום בין תהליכים : יסודות  דוגמאות לבעיות תיאום  הגדרות : קטע קריטי, מנעולים  אלגוריתם קופת - חולים.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
מתמטיקה בדידה תרגול 3.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
דקדוקים חסרי הקשר Word categories (part of speech): NNountable, dogs, justice, oil VVerbrun, climb, love, ignore ADJAdjective green, fast, angry ADVAdverbsquickly,
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם הבנקאי להתחמקות.
יפעת קוליקנט, מכון ויצמן למדע1 פרק 7, אלגוריתם Ra לפתרון בעית הקטע הקריטי במערכות מבוזרות.
רקורסיות נושאי השיעור מהן רקורסיות פתרון רקורסיות : שיטת ההצבה שיטת איטרציות שיטת המסטר 14 יוני יוני יוני 1514 יוני יוני יוני 1514.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
טיפול בקיפאון בעיית הקיפאון הימנעות מקיפאון
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Motion planning via potential fields תומר באום Based on ch. 4 in “Principles of robot motion” By Choset et al. ב"הב"ה.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם להתחמקות מקיפאון.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
1 מפרטים פורמאליים תרגול מספר 1 מהות הקורס:כח ביטוי. בעיות מעשיות (ולא הוכחות) מתרגל אחראי:שחר דג מתרגלת:אמיליה כץ אתר:
הקיבול איננו תלוי במטען ובפוטנציאל
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
Ray 7 דוגמא אלגוריתם 1.קבל דוגמאות 2. פלט f a עבור הדוגמה a המינימלית החיובית ?
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם להתחמקות מקיפאון.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
1 Formal Specifications for Complex Systems (236368) Tirgul Hazara.
תיאום בין תהליכים : יסודות  דוגמאות לבעיות תיאום  הגדרות : קטע קריטי, מנעולים  אלגוריתם קופת - חולים.
Last time on Clang משתנה: "פתק" המשמש את המחשב לשמירת מידע. לכל משתנה יש שם וטיפוס כללים לשמות משתנים –חייבים להכיל רק אותיות, מספרים ו '_' –חייבים להתחיל.
Data Structures, CS, TAU, RB-Tree 1 עץ אדום-שחור - עץ חיפוש בינארי - בכל צומת ביט אינפורמציה נוסף - צבע « עץ “ כמעט מאוזן ” « (O(log n במקרה גרוע ביותר.
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
מתמטיקה בדידה תרגול 2.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
1 מבוא למדעי המחשב backtracking. 2 מוטיבציה בעיית n המלכות: נתון: לוח שחמט בגודל. המטרה: לסדר על הלוח n מלכות כך שאף אחת לא תאיים על השנייה. דוגמא: עבור.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 7 ISP דוגמא נוספת.
Text to speech In Mobile Phones איתי לוי. הקדמה שימוש בהודעות טקסט על המכשירים הסלולארים היא דרך תקשורת מאוד פופולארית בימינו אשר משתמשים בה למטרות רבות,
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
- אמיר רובינשטיין מיונים - Sorting משפט : חסם תחתון על מיון ( המבוסס על השוואות בלבד ) של n מפתחות הינו Ω(nlogn) במקרה הגרוע ובממוצע. ניתן לפעמים.
Presentation by Gil Perry Supervised by Amos Fiat 1.
Kashrut is a mitzvah in the Torah and has been passed on through generations. Kashrut is a chok. this means that we don’t know why we do it but we.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Costs and Filters Dr. Avi Rosenfeld Department of Industrial Engineering Jerusalem College of Technology
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
שיתוף PDT בין חוטים PDT Thread A Process Descriptor File Object 1 File Object 2 File 1 File 2 pthread_create Thread B Process Descriptor ה PDT משותף לכל.
Multiprocessor Synchronization Algorithms
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
FAA FAA (int s, int val) { temp = s; s = s + val; return temp; }
Tirgul 12 Trees 1.
Formal Specifications for Complex Systems (236368) Tutorial #1
תירגול 14: מבני נתונים דינאמיים
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
ממשקים - interfaces איך לאפשר "הורשה מרובה".
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
Asynchronous programming
Marina Kogan Sadetsky –
פרק רביעי – תקשורת בין תהליכים פנימיים
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Presentation transcript:

1

2 קצת מידע על הבעייה נהגתה ונפתרה על ידי דייקסטרה חומרים בעברית – דוד הראל, אלגוריתמיקה.

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

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

5 ניתוח הבעיה על איזה משאב מתחרה כל פילוסוף ועם מי ?

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

7 תכנון הפתרון תיאום השימוש במזלגות על-ידי סמפורים. סה"כ חמישה סמפורים שיוצהרו : Fork: array[1..5] of semaphore פילוסוף שירצה להרים מזלג, יבצע wait ל fork המתאים, ורק לאחר שביצוע ה-wait הסתיים יוכל להרימו. לכשיסיים לאכול, יחזיר את המזלג למקומו, ויבצע signal לסמפור המתאים, כדי לאפשר לשכנו להרים את המזלג.

8 עבור הפילוסוף החמישי [Fork[I+1 הוא [Fork[1 יישום בצע תמיד : –חשוב –בצע ([wait (Fork[I –הרם מזלג שמאלי – בצע ([wait (Fork[I+1 –הרם מזלג ימני –אכול ספגטי –החזר מזלג ימני –בצע ([signal (Fork[I+1 –החזר מזלג שמאלי –בצע ([signal (Fork[I {קטע קריטי}

9 בדיקה קיפאון ? מניעה הדדית ? הרעבה ?

10 יש קיפאון ! תסריט להוכחה פיל’ 1 מרים מזלג שמאלי פיל' 2 מרים מזלג שמאלי פיל' 3 מרים מזלג שמאלי פיל' 4 מרים מזלג שמאלי פיל' 5 מרים מזלג שמאלי אף פילוסוף לא יוכל להרים את מזלגו הימני לעולם!

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

12 אין קיפאון נניח (בדרך השלילה) שיש קיפאון כולם אוחזים במזלג השמאלי כולם אוחזים במזלג הימני או אחד מהם אוחז גם במזלג הימני - (לפי האלג) לפחות 4 אוחזים במזלגם השמאלי (לפי האלג) סתירה !

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

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

15 אין הרעבה

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

17 פתרון סימטרי -השוער Room: Semaphore:= Init(4) נוסיף סמפור שיהיה אחראי על מספר המורשים לנסות להתחיל לאכול

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

19 המשך – קיפאון? מחוץ לחדר יכולים להיות עד חמישה פילוסופים (כולם חושבים) אבל לכל היותר אחד יכול להיות חסום על סמפור Room (ערכו ההתחלתי 4). הסמפור מאותחל ל 4 כך שלכל היותר ארבעה פילוסופים יכולים להיות בחדר בו זמנית. וכבר הוכחנו שאין קיפאון בחדר, לכן לפחות אחד מהארבעה יאכל, ויצא מן החדר תוך שחרור הפילוסוף הממתין בחוץ. פילוסוף לא יהיה חסום לנצח על סמפור Room. אין קיפאון!

20 הרעבה ? * אף פילוסוף לא יהיה חסום לנצח על סמפור של מזלג (ימני או שמאלי) כי הוכחנו שאין קיפאון בחדר וכל סמפור של מזלג משותף רק לשני פילוסופים. * אף פילוסוף לא יהיה חסום לנצח על הסמפור Room. ארבעה פילוסופים יכולים להיכנס לחדר לאכול וכבר הוכחנו שבחדר אין קיפאון ולכן אחד הפילוסופים יאכל ויצא מן החדר תוך שחרור הפילוסוף הממתין בחוץ. אין הרעבה! לכן גם אין הרעבה!

21 נגדיר: חמישה צמתים לפילוסופים. חמישה צמתים למזלגות (המזלג הופך להיות משאב אקטיבי המחליט בעצמו מי ישתמש בו ומתי). בעיית הפילוסופים -במישור המבוזר

22 תהליך מזלג בצע תמיד קבל הודעת בקשה עם פרמטר N שלח הודעת אישור לצומת N קבל הודעת שחרור

23 תהליך פילוסוף בצע תמיד חשוב הרם מזלג שמאלי הרם מזלג ימני אכול הנח מזלג ימני הנח מזלג שמאלי שלח הודעת בקשה למזלג I עם פרמטר I קבל הודעת אישור שלח הודעת בקשה למזלג I+1 עם פרמטר I קבל הודעת אישור שלח הודעת שחרור למזלג I+1 שלח הודעת שחרור למזלג I

24 קיפאון? כחול-שלח הודעהכתום-שלח אישור קיפאון!!

25 פתרון באמצעות הלוח והפתקים שני הפתרונות שנציג כאן - פתרון לא סימטרי ופתרון סימטרי עם “שוער”, הם בעלי מנגנון תיאום זהה לפתרונות שניתנו באמצעות סמפורים רק אמצעי התיאום שונה. I N המשפטים Removenote(‘F’,N=) Wait(Fork[I]) שקולים למשפט Postnote(‘F’,I) והמשפט Signal(Fork[I]) שקול למשפט הרם מזלג I החזר מזלג I

26 בחלק הראשי של התוכנית נצמיד 5 פתקים ללוח - פתק לכל מזלג. יישום ( לכל פילוסוף I) פתרון לא סימטרי אחד הפילוסופים ייקח קודם מזלג ימני ואח ” כ שמאלי ‘F’,5 ‘F’,4 ‘F’,3 ‘F’,2 ‘F’,1 בצע תמיד חשוב I N Removenote( ‘ F ’,N= ) הרם מזלג שמאלי I+1 N Removenote( ‘ F ’,N= ) הרם מזלג ימני אכול ספגטי החזר מזלג ימני ( postnote( ‘ F ’, I+1 החזר מזלג שמאלי ( postnote( ‘ F ’,I

27 איך נממש 'שוער' ? נצמיד ללוח 4 פתקים מסוג ‘Room’ (בתהליך הראשי) כל פילוסוף צריך קודם להסיר פתק מסוג room רק אח"כ ימשיך לנסות להשיג את המזלגות פתרון סימטרי - ‘ השוער ’

28 בחלק הראשי של התוכנית נצמיד ללוח 5 פתקים מסוג F (FORK ) ו 4 פתקים מסוג ROOM) R ) יישום ( לכל פילוסוף I) בצע תמיד חשוב Removenote ( ‘ R ’ ) I N Removenote( ‘ F ’,N= ) הרם מזלג שמאלי I+1 N Removenote( ‘ F ’,N= ) הרם מזלג ימני אכול ספגטי החזר מזלג ימני ( postnote( ‘ F ’, I+1 החזר מזלג שמאלי ( postnote( ‘ F ’,I Postnote ( ‘ R ’ ) ‘R’ ‘F’,5 ‘F’,4 ‘F’,3 ‘F’,2 ‘F’,1 כניסה לחדר יציאה מהחדר