1 / 30

השקפים בהשראת 'מבוא למערכות הפעלה'/234119/טל כהן + איתן קוך + האוניברסיטה הפתוחה

ניהול וזִמְנוּן תהליכים. השקפים בהשראת 'מבוא למערכות הפעלה'/234119/טל כהן + איתן קוך + האוניברסיטה הפתוחה. ניהול תהליכים - הקדמה . ריבוי תהליכים על מעבד בודד, כיצד? בכל רגע נתון רץ רק תהליך אחד: "התהליך הנוכחי" התהליכים האחרים : ממתינים לביצוע או ממתינים לק/פ או לקבלת משאב אחר

Download Presentation

השקפים בהשראת 'מבוא למערכות הפעלה'/234119/טל כהן + איתן קוך + האוניברסיטה הפתוחה

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ניהול וזִמְנוּן תהליכים השקפים בהשראת 'מבוא למערכות הפעלה'/234119/טל כהן +איתן קוך+ האוניברסיטה הפתוחה

  2. ניהול תהליכים - הקדמה • ריבוי תהליכים על מעבד בודד, כיצד? • בכל רגע נתון רץ רק תהליך אחד:"התהליך הנוכחי" • התהליכים האחרים : ממתינים לביצוע או ממתינים לק/פ או לקבלת משאב אחר • המכניזם:החלפת הקשר נושאי השיעור: • המוטיבציה:ריבוי תהליכים והחלפת תהליכים יזומה (ע“י מ"ה) • מנגנון החלפת ההקשר • מדיניות זמנון

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

  4. חסרונות החלפת תהליכים יזומה (ע"י מ"ה) • חסרונות: • תהליך אינו מקבל את כל משאבי המערכת • זמן ביצוע התהליך משתנה מריצה לריצה (תלוי בעומס הנוכחי) • תהליך אינו יכול להסתמך על "אי-יציאתו" מהמעבד (למה שירצה?...) • זמן החלפת התהליכים נושא תקורה – זהו זמן "מבוזבז"

  5. מנגנון החלפת ההקשר – תאור כללי על מנת להחליף תהליך P (רץ כרגע) בתהליך אחר (מוכן לריצה): • מ"ה "מצלמת" את P כדי שתוכל לשחזר את מצבו ולהחזירו לריצה • בוחרת תהליך אחר Q מבין כל המוכנים לריצה. • מפסיקה את פעולת P • משחזרת את Q ומתחילה להפעיל אותו התמונה של תהליך נקראת ההקשר שלו. ההקשר מוכרח להכיל מספיק מידע לשיחזור ההרצה שהופסקה

  6. תקורת החלפת ההקשר • התקורה: ה"צילום", ההחלטה את מי להריץ, השחזור • דוגמא: • נניח שמתבצעת החלפה כל 100 מילי-שניות • נניח שלוקחות 3 מילי-שניות להחליף הקשר • אזי מזמן העיבוד מתבזבז (במהירות העיבוד האפשרית כיום ההחלפה יכולה להתבצע בפחות ממילי-שנייה)

  7. רכיבי מנגנון החלפת ההקשר נלמד עכשיו על: • המצבים האפשרים של תהליך • טבלת התהליכים – המידע הנשמר על יד מ"ה עבור כל תהליך. (נקרא גם Process Control Block (PCB)) • מבנה נתונים לניהול תהליכים: תור "מוכנים לריצה" • מדיניות (אלגוריתם) זמנון – מי התהליך הבא שיכנס לריצה?

  8. Interrupt Admitted (Started) Event Complete Dispatched Normal or Abnormal Exit I/O or other Event Wait מבחינת החלפת הקשר: רק מצבי Ready ו-Current רלוונטיים מצבי תהליכים: דיאגרמת שינוי מצב של תהליך Ready Current New Waiting Terminated

  9. Process State Priority Process number Program Counter Stack Pointer <registers> I/O Status Information Memory Information Base Limits File Information Accounting Information טבלת התהליכים (PCB - Process Control Block ) • הטבלה מכילה רשומה לכל תהליך • רשומת תהליך מכילה מידע על מצב התהליך ועל ההקשר הדרוש להרצתו (מכילה גם מידע נוסף שאינו רלוונטי להחלפת הקשר) • רשומת תהליך נראית בערך כך: • אינדקס הכניסה בטבלה של תהליך הוא המזהה שלו (Pid)

  10. מבנה נתונים:תור הממתינים לריצה תור הממתינים לריצה: תור דו-כווני הממוין לפי עדיפויות (נקרא "תור עדיפויות") Ready Queue head tail PCB 12 Prio: 200 PCB 42 Prio 200 PCB 3 Prio 100 PCB 41 Prio 3 PCB 0 <NULL> Prio 0

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

  12. מדיניות תזמון – אלמנטים מרכזיים • התהליך הבא נבחר מבין אלו הנמצאים בתור הממתינים • שני אלמנטים מרכזיים אשר יכולים להוות את הבסיס למדיניות תזמון: • פרק זמן קצוב:לאחר לכל היותר פרק זמן (הנקרא בדרך כלל Quantum) בו רץ התהליך הנוכחי הוא מוחלף – • חלוקה זו מבטיחה סוג מסוים של הוגנות ("סוציאליסטית") • עדיפויות (בשקף הבא...)

  13. מדיניות תזמון – אלמנטים מרכזיים • עדיפויות: • התהליך הנוכחי הוא התהליך בעל העדיפות (הנוכחית) הגבוהה ביותר. • עדיפויות יכולות להשתנות באופן דינאמי. • מדיניות זו מבטיחה סוג אחר של הוגנות ("קפיטליסטית" או "מעמדית"...)

  14. שיקולים בקביעת עדיפויות • תהליכים של משתמשים "חשובים" יקבלו עדיפות גבוהה • system-administrator, managers... • עדיפות גבוהה לתהליכים שסיומם דחוף • תהליכים אינטראקטיביים יקבלו עדיפות גבוהה

  15. שיקולים בקביעת עדיפויות • נרצה שתהליכי "צְדַקה" יהיו בעדיפות מינימלית: • חישובים מבוזרים קולקטיביים (לפיצוח בעיות קשות) • להטענת מסמכים מהרשת (Push Technology) • חישוב עד מיליון ספרות • צדקה...

  16. קריטריונים להחלטה: • בני מדידה: • זמן ההגעה של הבקשה • הקדימות הראשונית של הבקשה • מוערכים (בדר"כ רלוונטי לעבודות אצווה בלבד, וגם שם ההערכה לא מדויקת): • זמן היע"מ • זיכרון • שורות פלט • משאבים נוספים • כל השיקולים האלה נותנים לנו מדד ל 'עדיפות ראשונית'.

  17. דוגמא: חישוב עדיפויות ב-UNIX ערך גבוה יותר – עדיפות נמוכה יותר • מחלקים את הזמן לקוונטות 1,2,3,… • עדיפות תהליך בתחילת הקוונטה ה- היא: • Basej: עדיפות ראשונית של תהליך j • Uj(i): תצרוכת יע"ם של תהליך j בזמןi ערך חיובי בטווח 1..19 בשליטת המשתמש ממוצע נע משוקלל אקספוננציאלית yi-1(yi= αxi + (1 - α

  18. איך בוחרים מדיניות תזמון? • ניתן להביא בחשבון מספר קריטריונים. למשל: • ניצול מקסימלי של המעבד • מִזְעוּר תְקוּרה • זמן תגובה מינימלי (לטובת משתמשים אינטראקטיביים) • הספק (throughput):נרצה כי מספר גדול ככל האפשר של תהליכים יסיימו את ריצתם בפרק זמן נתון • בדרך כלל מתקיים tradeoff בין הקריטריונים השונים:מדיניות תזמון המשפרת אחד מהם גורמת להרעה באחרים • דוגמה קלאסית ל online-algorithm, כלומר אלג' אופטימיזציה שמקבל את הנתונים בזמן ריצה במקום מראש.

  19. אלגוריתמי תזמון • First Come First Serve (FCFS): non-preemptive ידוע גם כ – 'FIFO' התהליך שהגיע ראשון לתור הממתינים יכנס ראשון • לא מספק דרישות שיתוף (time sharing). • לא מתיימר למקסם ניצול התקנים • Shortest Job First (SJF): preemptive או non-preemptive התהליך בעל יתרת זמן ריצה מינימלית יכנס ראשון • דורש ניבוי זמן הריצה של תהליך – כיצד? שני אלגוריתמים אלו הם בעצם מקרים פרטיים של תזמון עדיפויות

  20. דוגמא:FCFS ו SJF FCFS: P1 P2 P3 Execute time24 3 3 Wait time 0 24 27 Average wait time = (0+24+27)/3 = 17 ms SJF: P2 P3 P1 Now Average wait time = (0+3 + 6)/3 = 3 ms

  21. דוגמא: SJF • לכל תהליך נציין את זמן העיבוד הרציף הנותר (למשל עד ק/פ) ב-ms • למשל P1 (6) P2(8) P3 (7) P4 (3) • סדר הריצה יהיה P4, P1, P3, P2 • זמן ההמתנה הממוצע (Avg wait time)יהיה8ms • בממוצע על כל הסדרים האפשריים FCFS נותן 12.07ms

  22. בעיות עם SJF ופתרונות • אי אפשר להיות הוגן באופן מוחלט • יכול לקרות מצב בו תהליכים ארוכים נדחפים לסוף התור לנצח, אם כל הזמן מגיעות בקשות קצרות. • פתרונות: • נגביל את מספר הפעמים שתהליך יכול להיעקף. זה נקרא מדיניות:shortest process next, with bypass and freeze • וותק בתור, למשל: • c’ = (זמן יע"מ משוער) / (1 + (זמן המתנה)/k) לוקחים את התהליך בעל הc’ הנמוך ביותר כתהליך הבא. k מבטא קבוע כלשהו, המעיד על מידת החשיבות שאנחנו נותנים לזמן ההמתנה.

  23. מדיניות Round Robin • מדיניות Round Robin (RR): • מחלקים את הזמן למרווחי זמן קבועים הנקראים (Quantom) • כל התהליכים המתחרים מאורגנים בתור מעגלי • התהליכים נכנסים לעיבוד לפי סדר הופעתם בתור • כל תהליך מקבל לכל היותר Quantum בכל סיבוב

  24. מדיניות Round Robin • מספר תכונות של RR: • Preemptive • ביצועי RR תלויים בגודל Quantum. • נשים לב כי עבור Quantum גדול מאד, RR שקול (אפקטיבית) ל-FCFS • כי ב -quantum אחד, כל המשימה מתבצעת.

  25. סיום PCB בביצוע PCB בהמתנה ...... PCB בהמתנה כניסה מצב 'מוכן' Round-Robin

  26. השוואות • נניח שזמן הקוונטה הוא q ויש n תהליכים לפני התהליך הנוכחי. • m - מספר הפעמים שתהליך צריך להיכנס למצב ביצוע בממוצע. • זמן התגובה (התחלת תהליך): nq • מסקנה: להקטין את q. הבעיה שאי אפשר להקטין יותר מדי בגלל התקורה של החלפת ההקשר.

  27. זמן המתנה • נניח ש t >> q (כלומר לא מסתיים בקוונטה אחת). • נניח שזמן הביצוע של התהליך ה -i הוא ti = mi * q. • זמן ההמתנה = mi(n*q) = n(mi*q) = nti • (עובר mi פעמים במעגל, כל פעם זה nq זמן).

  28. זמן המתנה • ב - FCFS הזמן היה nT • ההבדל הוא ש -ti מתייחס לתהליך עצמו, ו -T לתהליך 'ממוצע'. • כלומר לתהליך כדאי להיות ב RR אם mi < m, כלומר אם הוא קצר מהממוצע. • אם כל התהליכים בתור הם שווי אורך, זמן ההמתנה בשיטת הריצה המעגלית שווה לזה של FCFS.

  29. זמן סיום • זמן סיום = זמן המתנה + זמן ביצוע • תהליכים קצרים (משך ביצוע קטן מ q): nq + q • תהליכים ארוכים: miq + nti • תהליכים ארוכים 'מקופחים' באופן זה. ישנן גישות לתיקון. • למשל, לתת q,2q,4q וכו' זמן מעבד לפי מספר הכניסה לתור. כלומר, ככל שיותר זמן ממתינים, כך העדיפות גדלה.

  30. דוגמה למשבץ המערב מספר אסטרטגיות: FCFS, כי תהליכים קצרים וצפויים, חבל לבזבז תקורה PCB ... PCB רמה 0: מערכת FCFS, כי תהליכים יחסית נדירים PCB ... PCB רמה 1: משתמש בקדימות גבוהה ריצה מעגלית עם q קטן PCB ... PCB רמה 2: מסופים (ללא עיבוד מקומי. דורש אינטראקטיביות מיידית) ריצה מעגלית עם q ארוך רמה 3: משתמשים אחרים FCFS (או SJF) רמה 4: משתמשי אצווה רמה 5:idle process

More Related