נובמבר 2002 1 קיפאון Deadlock. נובמבר 2002 2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה, זיהוי,התחמקות –אלגוריתמים למניעה והתחמקות.

Slides:



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

מבוא למדעי המחשב לתעשייה וניהול
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts סכימה לדוגמא.
גרף מכוון Directed Graph a b c f g ed h צמתים חוג עצמי קשתות.
Number Theory and Algebra Advisor …………… Dr. Shpilka Amir Presented by …… Cohen Gil..………
Recitation #9. Q1 גרף מכוון מורכב מקבוצה של צמתים (nodes) ומקשתות מכוונות (arcs) המחברות ביניהם. כל קשת מכוונת יוצאת מצומת אחד ונכנסת לצומת אחר. ( בגרפים.
מתמטיקה בדידה תרגול 3.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
גרפים ממשקלים גרף ממשקל הוא גרף עם משקל לכל קשת עץ פורש הוא עץ שצמתיו הם כל הצמתים של הגרף וקשתותיו הן קשתות הגרף.
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם הבנקאי להתחמקות.
1 2 קצת מידע על הבעייה נהגתה ונפתרה על ידי דייקסטרה חומרים בעברית – דוד הראל, אלגוריתמיקה.
יפעת קוליקנט, מכון ויצמן למדע1 פרק 7, אלגוריתם Ra לפתרון בעית הקטע הקריטי במערכות מבוזרות.
נובמבר ניהול תהליכים במערכת מרובת מעבדים Process Management in Multiprocessor Systems.
R. Bar-Yehuda © 1 קומבינטוריקה למדעי - המחשב – הרצאה #14 Graph theory – תורת הגרפים Chapter 1: PATHS IN GRAPHS – 1. מסלולים.
By Irina Polansky Deriving Mechanism Singularity Positions through the Graph Theory Duality Principle The Iby and Aladar Fleischman Faculty of Engineering.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
אינטרפולציה רועי יצחק.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
היום נדבר אל נושא אחד בתורת הגרפים. ובהמשך נשתמש בכלים אלו לפתרון כמה בעיות גאומטריות ובפרט להוכחת Szemeredi Trotter theorem.
מערכות הפעלה חזרה. מערכות הפעלה - שאלות חזרה2 (c) רסקין לאוניד 2005 שאלה1.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
משפט ההרכבה Composition Theorem תהי C מחלקה של פונקציות בוליניות תהי נגדיר סדרת פונקציות שניתנות לחישוב בזמן פולינומיאלי.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
משטר סטטי שערים לוגיים Wired Drives – © Dima Elenbogen 2009, Moshe Malka :29.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
טיפול בקיפאון בעיית הקיפאון הימנעות מקיפאון
מרץ 2002אלן אזאגורי ©1 זימון תהליכים Process Scheduling.
תזכורת: גרפים גרף (G=(V,E V|=n, |E|=m| מכוון \ לא מכוון דרגה של קדקד
Questions are the Answer Penick&all H ISTORY R ELATIOINSHIPS A PPLICATION S PECULATION E XPLANATION.
מרץ 2002אלן אזאגורי ©1 קיפאון Deadlock. מרץ 2002 אלן אזאגורי ©2עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה, זיהוי,התחמקות –אלגורימים.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם להתחמקות מקיפאון.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 זימון תהליכים  מדיניות בסיסיות : RR, FCFS, SJF  הערכת זמן ריצה ושימוש בעדיפויות  ריבוי תורים ודוגמאות.
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
The Cyclic Multi-peg Tower of Hanoi מעגלי חד-כווני סבוכיות הפתרון בגרסאות עם יותר מ-3 עמודים.
Ray 7 דוגמא אלגוריתם 1.קבל דוגמאות 2. פלט f a עבור הדוגמה a המינימלית החיובית ?
תחשיב הפסוקים חלק ד'. תורת ההיסק של תחשיב הפסוקים.
גרפים - Graphs גרף G(V,E) מורכב מקבוצת צמתים V וקבוצת קשתות E.
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם להתחמקות מקיפאון.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
1 Formal Specifications for Complex Systems (236368) Tirgul Hazara.
תחשיב היחסים (הפרדיקטים)
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
אוקטובר זימון תהליכים Process Scheduling. אקטובר עמוד נושאים מבוא לזימון תהליכים –מצבי תהליך –בעיית זימון התהליכים –מדדים לאיכות זימון תהליכים.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
מתמטיקה בדידה תרגול 2.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
(C) סיון טל גילוי מידע וזיהוי תבניות תרגול מס. 9 גילוי מידע וזיהוי תבניות תרגול מס. 9 דחיסת נתונים מהו קידוד תכונות של קידודים אי - שוויון קרפט.
Presentation by Gil Perry Supervised by Amos Fiat 1.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
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
מבוא למדעי המחשב סיבוכיות.
SQL בסיסי – הגדרה אינדוקטיבית
בעיות נוספות ב-NPC.
Marina Kogan Sadetsky –
Presentation transcript:

נובמבר קיפאון Deadlock

נובמבר עמוד נושאים בעית הקיפאון –דוגמא –תנאים לקיפאון טיפול בקיפאון –מניעה, זיהוי,התחמקות –אלגוריתמים למניעה והתחמקות

נובמבר עמוד דוגמא – הפילוסופים הסועדים פיתרון נאיבי בעזרת סמפורים –נקצה סמפור fork[i] לכל מזלג –p(fork[i-1]); p(fork[i]); eat; v(fork[i-1]); v(fork[i]); בעיה –כל פילוסוף תופס את המזלג השמאלי בו-זמנית ותקוע בהמתנה לימני קיפאון!

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

נובמבר עמוד תנאים לקיפאון 1. מניעה הדדית –ישנם משאבים שרק תהליך אחד יכול לעשות שימוש בהם בו-זמנית 2. החזק והמתן –ישנו תהליך המחזיק משאב ומחכה למשאב אחר שבשימוש אצל תהליך אחר 3. לא ניתן להפקיע משאבים –לא ניתן להפקיע משאב מתהליך ללא הסכמתו 4. המתנה מעגלית –קיימים n תהליכים כך ש-P i מחכה למשאב המוחזק ע"י P (i+1)mod n (0<=i<=n-1)

נובמבר עמוד דרכי התמודדות עם קיפאון מניעה (prevention) –לקבוע מדיניות שתימנע קיפאון התחמקות (avoidance) –להשתמש במידע מוקדם על צרכיו של כל תהליך כדי להראות שלא קורה גילוי והתאוששות (detection and recovery) –מאפשרים למערכת להגיע לקיפאון –כאשר זה קורה, המערכת תגלה זאת ותיחלץ מהמצב להתעלם מהבעיה –להניח שהמצב כמעט ואינו קורה...

נובמבר עמוד מניעת קיפאון – Prevention 1. מניעה הדדית –למשל, בנית מערכת שבה כל המשאבים ניתנים לשימוש משותף בו-זמנית 2. החזק והמתן –למשל, לא נאפשר לתהליך להמתין למשאב כאשר הוא מחזיק משאב אחר 3. לא ניתן להפקיע משאבים –למשל, נאפשר להפקיע משאבים מתהליך שכרגע בהמתנה 4. המתנה מעגלית –נקבע מדיניות שתמנע המתנה מעגלית

נובמבר עמוד מניעת קיפאון מניעה המתנה מעגלית נקבע סדר מלא בין השאבים –F(tape)=1, F(printer)=2, F(scanner)=3, … תהליכים יבקשו משאבים רק בסדר עולה –תהליך שמחזיק את ה-printer לא יוכל לבקש את ה-tape או... תהליך שמבקש משאב מסדר נמוך חייב לשחרר קודם משאבים מסדר גבוה

נובמבר עמוד גרף בקשות-הקצאות נתאר מצב רגעי של מערכת ע"י הגרף המכוון הבא –כל תהליך מתואר כעיגול –משאב בעל n עותקים מתואר כמלבן עם n נקודות –קשת מתהליך למשאב התהליך ממתין למשאב –קשת מ(עותק של) משאב לתהליך עותק של המשאב הוקצה לתהליך

נובמבר עמוד גרף בקשות-הקצאות דוגמא P1 מחזיק עותק של R2 ומהכה ל-R1 P2 מחזיק עותקים של R1 ו-R2 ומחכה ל-R3 P3 מחזיק עותק של R3 P1P1P2P2P3P3 R1R1 R2R2 R3R3

נובמבר עמוד גילוי קיפאון משפט: אם יש קיפאון אזי קיים מעגל מכוון בגרף בקשות-הקצאות –נובע מתנאי "החזק והמתן" ו-"המתנה מעגלית" אבל... קיום מעגל אינו תנאי מספיק לקיפאון! P1P1P2P2P3P3 R1R1 R2R2

נובמבר עמוד גילוי קיפאון עותק יחיד של כל משאב משפט:בהנחה שיש עותק יחיד של כל משאב, קיים מעגל מכוון בגרף בקשות-הקצאות אם ורק אם יש קיפאון –המתנה מעגלית P1P1P2P2P3P3 R1R1R3R3R2 P4P4 R4

נובמבר עמוד גילוי קיפאון עותק יחיד של כל משאב זיהוי מעגל –S היא קבוצת כל הצמתים ללא קשתות יוצאות אלגוריתם –כל עוד יש קשת i  j הנכנסת לצומת j, עבור j כלשהו ב-S מחק את הקשת i  j מהגרף אם ל-i אין קשתות יוצאות, הוסף את i ל-S –אם בסוף S לא מכיל את כל הצמתים בגרף, אזי יש מעגל C מהו היחס בין הצמתים ב-C ו-S? סיבוכיות –O(|E|) כאשר E היא קבוצת הקשתות

נובמבר עמוד גילוי מעגל – דוגמא S

נובמבר עמוד גילוי מעגל – דוגמא S

נובמבר עמוד גילוי מעגל – דוגמא S

נובמבר עמוד גילוי מעגל – דוגמא S

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

נובמבר עמוד צמצום גרף בקשות-הקצאות P1P1P2P2P3P3 R1R1R2R2 P4P4 ניתן לצמצם את P3 ולשחרר את R2ו-R3 כעת ניתן לספק את כל צרכיו של P4 (או 2(P אך לא של P1 אחר-כך ניתן לצמצם את P2 ו-P1 R3R3

נובמבר עמוד צמצום גרף בקשות-הקצאות P1P1P2P2P3P3 R1R1R2R2 P4P4 ניתן לצמצם את P3 ולשחרר את R2ו-R3 כעת ניתן לספק את כל צרכיו של P4 (R2) אך לא של P1 אחר-כך ניתן לצמצם את P2 ו-P1 R3R3

נובמבר עמוד צמצום גרף בקשות-הקצאות P1P1P2P2P3P3 R1R1R2R2 P4P4 ניתן לצמצם את P3 ולשחרר את R2ו-R3 כעת ניתן לספק את כל צרכיו של P4 (R2) אך לא של P1 אחר-כך ניתן לצמצם את P2 ו-P1 R3R3

נובמבר עמוד צמצום גרף בקשות-הקצאות P1P1P2P2P3P3 R1R1R2R2 P4P4 ניתן לצמצם את P3 ולשחרר את R2ו-R3 כעת ניתן לספק את כל צרכיו של P4 (R2) אך לא של P1 אחר-כך ניתן לצמצם את P2 ו-P1 R3R3

נובמבר עמוד צמצום גרף בקשות-הקצאות P1P1P2P2P3P3 R1R1R2R2 P4P4 ניתן לצמצם את P3 ולשחרר את R2ו-R3 כעת ניתן לספק את כל צרכיו של P4 (R2) אך לא של P1 אחר-כך ניתן לצמצם את P2 ו-P1  הגרף פריק לחלוטין R3R3

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

נובמבר עמוד סדרת צמצומים מירבית בגרף בקשות-הקצאות הוכחה –נסתכל על שתי סדרות צמצומים מירביות p1, …, pk ו- q1, …, qr –נניח (בדרך השלילה) שהן אינן מכילות את אותם התהליכים –נתבונן בתהליך הראשון pi שאינו מופיע ב-q1, …, qr –אחרי q1, …, qi-1 ניתן לצמצם את pi –ולכן אחרי q1, …, qr עדיין ניתן לצמצם את pi –סתירה!

נובמבר עמוד פריקות לחלוטין P4 P5 P2 R1R1R2R2 P1 R3R3R4 P3 ניתן לצמצם את P1, P5

נובמבר עמוד פריקות לחלוטין P4 P5 P2 R1R1R2R2 P1 R3R3R4 P3 לאחר מכן,לא ניתן לצמצם תהליכים אחרים הגרף אינו פריק לחלוטין!

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

נובמבר עמוד אלגוריתם לזיהוי קיפאון מספר עותקים מכל משאב הרעיון: בדיקת פריקות גרף הקצאות-בקשות –נאתחל קבוצה L עם כל הצמתים שאינם מחכים למשאבים –עבור כל תהליך Pi ב-L שחרר את כל המשאבים התפוסים ע"י Pi עבור כל תהליך Pk אשר ניתן לספק את כל צרכיו –הוסף את Pk ל-L –אם בסיום L אינו מכיל את כל התהליכים אזי יש קיפאון סיבוכיות –O(m n 2 ) m – מספר המשאבים n – מספר התהליכים

נובמבר עמוד החלצות מקיפאון אפשרויות החלצות מקיפאון –ביטול כל התהליכים המצויים במצב קיפאון –ביטול תהליכים אחד אחד עד להחלצות –הפקעת משאבים מציאת קבוצה אופטימלית (של תהליכים או משאבים) היא NP-Complete –feedback vertex set קבוצת צמתים מינימלית שתהפוך גרף לחסר מעגלים –feedback arc set קבוצת קשתות מינימלית שתהפוך גרף לחסר מעגלים

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

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

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

נובמבר עמוד אלגוריתם הבנקאי פירוט משתנים –available[1..m] – מספר עותקים פנויים מכל משאב –max[1..n, 1..m] – מספר עותקים מקסימלי שתהליך יכול לבקש (הצהרה) –allocation [1..n, 1..m] – מספר העותקים של המשאב שכעת מוקצים לתהליך –need[i,j]=max[i,j]-allocation[i,j] מספר העותקים של המשאב שהתהליך i עלול לבקש פעולות וקטוריות –X  Y אמ"ם X[i]  Y[i] לכל 1  i  m

נובמבר עמוד אלגוריתם הבנקאי פירוט L =  while there is a P i  L and need[i]  available do available:=available+allocation[i] add P i to L end if L contains all processes then this is a safe state

נובמבר עמוד אלגוריתם הבנקאי – דוגמא האם המצב הבא של המערכת הוא "בטוח“? ניתן לצמצם את P2 –לאחר שחרור משאביו, ניתן לצמצם את P3 ו-P1 ABC P1010 P2210 P3103 Total323 ABC ABC 034 ABC allocationmaxavailableneed

נובמבר עמוד סיכום רוב מערכות ההפעלה אינם דואגות למנוע קיפאון –פעולה כבדה –האחריות נשארת אצל המתכנת –הריגת תהליך מאפשרת להיחלץ מקיפאון אך עלולות להשאיר את המערכת במצב לא תקין ב-Windows NT –פקודת WaitForMultipleObjects –מקצה את כל משאבים יחד, אם כולם פנויים