Download presentation
Presentation is loading. Please wait.
1
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 זימון תהליכים מדיניות בסיסיות : RR, FCFS, SJF הערכת זמן ריצה ושימוש בעדיפויות ריבוי תורים ודוגמאות
2
מערכות הפעלה ( אביב 2006) חגית עטיה ©2 זימון תהליכים זימון טווח - קצר : בוחר תהליך מתור המוכנים ומריץ אותו ב -CPU. מופעל לעיתים קרובות ( אלפיות - שנייה ). חייב להיות מהיר. זימון טווח - ארוך : בוחר איזה תהליך יובא לתור המוכנים. מופעל לעיתים " רחוקות " ( שניות, דקות ). יכול להיות איטי. תהליכים יכולים להשתחרר יחד מהמתנה בעקבות אירוע ( למשל המתנה ל timer) או אחד מקבוצה בכל אירוע ( למשל המתנה למשאב שאינו ניתן לשיתוף כמו מדפסת )
3
מערכות הפעלה ( אביב 2006) חגית עטיה ©3 מדדים להערכת אלגוריתם לזימון תהליכים עבור זימון טווח-קצר, המדדים העיקריים הם: זמן ביצוע כולל מינימאלי turnaround time - זמן ביצוע כולל = זמן המתנה (בטווח קצר וארוך) + זמן ביצוע זמן תגובה מינימאלי ( במערכת אינטראקטיבית ) response time - זמן תגובה = זמן עד שהתהליך מגיב (מתחיל לרוץ) תקורה מינימאלית אי-אפשר לנצח בשני המדדים ( trade-off ). לפעמים מעוניינים במטרות נוספות: ניצול מקסימלי של המעבד – (אחוז הזמן שהמעבד " פעיל ") הספק / תפוקה ( throughput ) מקסימלי - (מספר התהליכים שמסתיימים בפרק זמן)
4
מערכות הפעלה ( אביב 2006) חגית עטיה ©4 אלגוריתם First-Come, First-Served התהליך שהגיע ראשון לתור הממתינים ירוץ ראשון נותן עדיפות לתהליכים חישוביים (CPU bound) ממזער ניצול התקנים לא מספק דרישות שיתוף (time sharing) non-preemptive ( ללא הפקעות ): תהליך מקבל את המעבד עד לסיומו. מימוש פשוט : תור התהליכים המוכנים הוא FIFO.
5
מערכות הפעלה ( אביב 2006) חגית עטיה ©5 FCFS: דוגמא זמן ההמתנה של תהליך מרגע הגעתו לתור המוכנים ועד לתחילת ביצועו תלוי בסדר הגעת התהליכים לטווח הקצר למשל, אפשרות אחת ( התהליכים מגיעים " ביחד "): זמן המתנה ממוצע = (0+24+27)/3 = 17. זמן המתנה ממוצע = (0+3+6)/3 = 3. P1P1P2P2P3P3 3243 P1P1P2P2P3P3 33
6
מערכות הפעלה ( אביב 2006) חגית עטיה ©6 אפקט השיירה Convoy C תהליך עתיר חישובים I 1, …,I n תהליכים עתירי I/O מה קורה ? תהליך C תופס את המעבד. תהליכי I j מצטברים בתור המוכנים. התקני קלט / פלט מובטלים ! C I4I4 I3I3 I2I2 I1I1
7
מערכות הפעלה ( אביב 2006) חגית עטיה ©7 Round Robin (RR) תור מוכנים מעגלי המעבד מוקצה לתהליך הראשון בתור אם זמן הביצוע של התהליך גדול מקצבת זמן מסוימת, q, התהליך מופסק ומועבר לסוף תור המוכנים. preemptive בדרך - כלל, q = 10-100msec. מימוש באמצעות timer שמייצר פסיקה כל q יחידות - זמן.
8
מערכות הפעלה ( אביב 2006) חגית עטיה ©8 השוואת זמן הסיום של תהליכים 10 תהליכים כל תהליך דורש 100 יחידות - זמן. q=1. RRFCFS תהליך 9911001 9922002 1000 10
9
מערכות הפעלה ( אביב 2006) חגית עטיה ©9 אפיונים של Round Robin אם קצבת הזמן q קטנה, הזימון " הוגן " כאילו כל תהליך רץ במעבד משלו בקצב 1/N כאשר N הוא מספר התהליכים. זמן תגובה ( כמעט ) ליניארי בזמן החישוב וב -N. התקורה עלולה להיות גבוהה ! אם q גדול מאד, RR הופך ל -FCFS זמן התגובה ( = זמן המתנה + זמן ביצוע) הממוצע תחת RR הוא לכל היותר פעמיים האופטימאלי ההוכחה בהמשך
10
מערכות הפעלה ( אביב 2006) חגית עטיה ©10 Selfish Round-Robin תהליכים חדשים ממתינים בתור FIFO ( לא מתוזמנים ) תהליכים וותיקים מוחזקים בתור Round-Robin לביצוע כאשר אין תהליך בתור הוותיקים, בוחרים את הראשון בתור החדשים ומצרפים אותו לוותיקים תהליכים מזדקנים : בכל יחידת זמן, עדיפות התהליך גדלה, עד שעוברת סף מסוים, והתהליך עובר לתור הותיקים. הזדקנות מהירה ( או מיידית ) RR הזדקנות איטית ( או אינסופית ) FCFS
11
מערכות הפעלה ( אביב 2006) חגית עטיה ©11 Shortest Job First (SJF) נקרא גם Shortest Processing Time First מריצים את התהליך עם זמן ביצוע מינימאלי, עד לסיומו. כל התהליכים מגיעים יחד. זמן הביצוע של תהליך ידוע מראש. Non-preemptive. דוגמא : P1 (6) P2 (8) P3 (7) P4 (3) זמן המתנה ממוצע = (0+3+9+16)/4= 7 מינימאלי לכל סדר זימון אפשרי ! P2P4P4P1P1 386 P3 7
12
מערכות הפעלה ( אביב 2006) חגית עטיה ©12 הוכחת היעילות של מנגנוני זימון סימונים T i - הוא זמן השהייה - סה " כ זמן שתהליך בטווח הקצר - במצב " רץ " או " מוכן " t i - הוא סה " כ זמן שתהליך במצב " רץ " זמן שהייה ממוצע של תהליך, תחת מדיניות זימון A כאשר N הוא מספר התהליכים
13
מערכות הפעלה ( אביב 2006) חגית עטיה ©13 להפקיע או לא להפקיע למה : לכל מדיניות זימון עם הפקעה A עבור N תהליכים שמגיעים יחד, קיימת מדיניות A ’ ללא הפקעה כך ש - הוכחה בהינתן זימון של N תהליכים לפי זימון A יהי Pk התהליך שמסתים אחרון נצופף את ריצת Pk לסוף הזימון זמן השהייה של Pk לא השתנה וזמן השהייה של התהליכים האחרים לא גדל נחזור על הפעולה עבור יתר התהליכים בלי Pk PkPrPk Pr time PkPrPk Pr time
14
מערכות הפעלה ( אביב 2006) חגית עטיה ©14 אופטימליות של SJF לפי מדד H A משפט : אם כל התהליכים מגיעים יחד, לכל מדיניות זימון A הוכחה לפי הלמה, ניתן להניח ש -A היא מדיניות ללא הפקעה. אם A לא SJF, חייבים להיות שני תהליכים P k ו -P r כך ש -t k < t r ו -P r מתוזמן מיד לפני P k -- נחליף בינהם. זמן השהייה ממוצע אחרי ההחלפה לא גדל : חוזרים על ההחלפות עד שהתזמון נהיה SJF PrPk PrPk לפני אחרי TrTr TkTk trtr tktk time
15
מערכות הפעלה ( אביב 2006) חגית עטיה ©15 זמן השהייה הממוצע תחת RR משפט : אם כל התהליכים מגיעים יחד, אזי הוכחה נסמן ב -delay A (i, j) את העיכוב שנגרם לתהליך P j עקב זימונים של תהליך P i תחת מדיניות A עבור מדיניות A כלשהי, מתקיים : נכון רק אם q קטן מ min(t i )
16
מערכות הפעלה ( אביב 2006) חגית עטיה ©16 זמן השהייה הממוצע תחת RR עבור SJF עבור Round Robin i<j PiPj time PiPj time PiPj
17
מערכות הפעלה ( אביב 2006) חגית עטיה ©17 Shortest Remaining Time to Completion First (SRTF) כאשר מגיע תהליך P i שזמן הביצוע הנותר שלו קצר יותר מזמן הביצוע הנותר של התהליך שרץ כרגע P k מכניסים את P i למעבד, במקום P k preemptive ממזער את זמן השהייה הממוצע במערכת. SRTF אופטימאלי ( מבחינת זמן שהייה ממוצע ) כאשר תהליכים לא מגיעים יחד, בניגוד ל -SJF.
18
מערכות הפעלה ( אביב 2006) חגית עטיה ©18 ניבוי זמן הריצה של תהליך אומדן סטטיסטי של הזמן עד לוויתור על המעבד, על - פי הפעמים הקודמות שהתהליך החזיק במעבד i – הערכת זמן הביצוע לסיבוב ה -i t i – זמן הביצוע בפועל בסיבוב ה -i לדוגמא, t 0 = 1 = ½ = ¾
19
מערכות הפעלה ( אביב 2006) חגית עטיה ©19 עדיפויות לכל תהליך יש עדיפות התחלתית. עדיפות התחלתית גבוהה ניתנת : לתהליכים של משתמשים חשובים ( למשל, sysadmin ) לתהליכים שסיומם דחוף לתהליכים אינטראקטיביים תהליכים בעדיפות מינימאלית יכולים לשמש לתרומת זמן מעבד לצרכים לא חשובים ( SETI@home )
20
מערכות הפעלה ( אביב 2006) חגית עטיה ©20 זימון לפי עדיפויות התהליך עם העדיפות הגבוהה ביותר מקבל את המעבד. SJF הוא זימון לפי עדיפויות כאשר העדיפות היא ההופכי של זמן הביצוע. הרעבה של תהליכים עם עדיפות נמוכה הזדקנות ( זמן שהייה ארוך ) של תהליכים גורמת להגדלת העדיפות שלהם ( לדוגמא,selfish round-robin).
21
מערכות הפעלה ( אביב 2006) חגית עטיה ©21 Multilevel Feedback Queues קיימים מספר תורים לפי סדר עדיפות. תור גבוה לתהליכים בעלי עדיפות גבוהה יותר לתורים הנמוכים מוקצה אחוז קטן יותר של זמן מעבד. quantum גדול יותר לתורים נמוכים יותר. תהליך מתחיל בתור הגבוה ביותר. בסוף ה -quantum, יורד לתור נמוך יותר. אפליה מתקנת של תהליכים עתירי ק/פ לעומת תהליכים עתירי- חישוב אם תהליך משחרר המעבד לפני סוף ה quantum- ( עקב פעולת קלט / פלט ), הוא חוזר לתור גבוה יותר. מקבלים עדיפויות דינמיות לפי השימוש במעבד (+ עדיפות התחלתית ): המתנה ארוכה למעבד - מגדילה את העדיפות ריצה ארוכה במעבד – מקטינה את העדיפות
22
מערכות הפעלה ( אביב 2006) חגית עטיה ©22 זימון ב -UNIX זימון לפי עדיפויות עדיפות מספרית נמוכה = עדיפות טובה יותר חישוב העדיפות מתבסס על דעיכה אקספוננציאלית תהליך שהשתמש לא מזמן במעבד מקבל עדיפות גבוהה ( גרועה ) ככל שעובר הזמן, עדיפותו של התהליך דועכת ( משתפרת ) לכן תהליכים שיוותרו מרצונם על המעבד ( עתירי ק / פ ) יחזרו אליו מהר יותר מתהליכים שעברו הפקעה ( עתירי חישוב )
23
מערכות הפעלה ( אביב 2006) חגית עטיה ©23 חישוב עדיפויות ב -UNIX עדיפות תהליך בתחילת יחידת הזמן ה - היא :
24
מערכות הפעלה ( אביב 2006) חגית עטיה ©24 חישוב עדיפויות ב -UNIX עדיפות תהליך בתחילת יחידת הזמן ה - היא :
25
מערכות הפעלה ( אביב 2006) חגית עטיה ©25 זימון ב Linux: רעיון בסיסי גרסה נוספת של תורי עדיפויות נדון רק בזימון תהליכים רגילים זימון תהליכי זמן - אמת (real time) יתואר בתרגול. בדומה ל -unix, לכל תהליך יש עדיפות המורכבת מערך בסיס קבוע + בונוס דינמי המתכנת יכול לשנות את ערך הבסיס באמצעות קריאת המערכת nice() הבונוס הדינמי גדל כשתהליך חוזר מהמתנה וקטן ( עד לערך שלילי ) כאשר התהליך נמצא הרבה בטווח הקצר תהליך עתיר ק / פ צפוי לקבל עדיפות גבוהה יותר מתהליך עתיר חישוב בעל אותה עדיפות בסיס
26
מערכות הפעלה ( אביב 2006) חגית עטיה ©26 זימון ב Linux: רעיון בסיסי תהליך מקבל time slice שאורכו תלוי בעדיפות הבסיס תהליך עדיף מקבל time slice ארוך יותר. תהליך משובץ לתור עדיפות בהתאם לערך הנוכחי של עדיפותו הכוללת זמן המעבד מחולק לתקופות (epoch) בכל תקופה, המערכת נותנת לכל התהליכים לרוץ, החל מאלו הנמצאים בתור העדיפות הגבוה ביותר כל תהליך רץ עד סיום ה -time slice שלו ואז מקבל time slice חדש עבור התקופה הבאה
27
מערכות הפעלה ( אביב 2006) חגית עטיה ©27 זימון ב Linux: תהליכים חישוביים ואינטראקטיביים טיפול שונה : תהליכים חישוביים רוצים הרבה זמן מעבד, אבל יכולים לחכות תהליכים אינטראקטיביים רוצים מעט זמן מעבד, אבל מייד רוצים לתת לתהליכים אינטראקטיביים כמה זמן שנחוץ מחדשים להם את ה time slice לריצה נוספת בתקופה הנוכחית מאפיינים תהליך כאינטראקטיבי אם ממתין הרבה זמן מיוזמתו ( בטווח הבינוני ), כחלק מזמן הריצה הכולל שלו פרטים נוספים בתרגול !
28
מערכות הפעלה ( אביב 2006) חגית עטיה ©28 זימון ב -Windows NT גם כאן, שימוש בתורים לפי עדיפות 32 תורים (dispatcher ready queues) Real time priority ( עדיפויות 16-31) Variable priority ( עדיפויות 1-15) ( עדיפות 0 שמורה למערכת ) מדיניות Round Robin על התור העדיף ביותר שאינו ריק העדיפות יורדת אם נצרך כל ה -quantum העדיפות עולה אם תהליך עובר מ -wait ל -ready העדיפות נקבעת על - פי סוג הקלט / פלט ק " פ מהמקלדת מקנה עדיפות גבוהה
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.