OS2_scheduling
Download
Report
Transcript OS2_scheduling
ניהול ו ִזמְ נּון תהליכים
השקפים בהשראת 'מבוא למערכות הפעלה'/234119/טל כהן +איתן קוך
+האוניברסיטה הפתוחה
1
ניהול תהליכים -הקדמה
ריבוי תהליכים על מעבד בודד ,כיצד?
בכל רגע נתון רץ רק תהליך אחד" :התהליך הנוכחי"
התהליכים האחרים :ממתינים לביצוע או ממתינים לק/פ או
לקבלת משאב אחר
המכניזם :החלפת הקשר
נושאי השיעור:
המוטיבציה :ריבוי תהליכים והחלפת תהליכים יזומה (ע“י מ"ה)
מנגנון החלפת ההקשר
מדיניות זמנון
2
יתרונות החלפת תהליכים יזומה (ע"י מ"ה)
יתרונות:
ניצול מירבי של המעבד וההתקנים
תהליך בודד אינו חוסם את שאר התהליכים
תמיכה יעילה במשתמשים אינטראקטיביים
תהליכים יכולים להתקשר זה עם זה ולהסתנכרן
לעיתים ,אפליקציה מרובת תהליכים פשוטה יותר להבנה ,מימוש
ותחזוקה
3
חסרונות החלפת תהליכים יזומה (ע"י מ"ה)
חסרונות:
תהליך אינו מקבל את כל משאבי המערכת
זמן ביצוע התהליך משתנה מריצה לריצה (תלוי בעומס הנוכחי)
תהליך אינו יכול להסתמך על "אי-יציאתו" מהמעבד (למה
שירצה?)...
זמן החלפת התהליכים נושא תקורה – זהו זמן "מבוזבז"
4
מנגנון החלפת ההקשר – תאור כללי
על מנת להחליף תהליך ( Pרץ כרגע) בתהליך אחר (מוכן לריצה):
מ"ה "מצלמת" את Pכדי שתוכל לשחזר את מצבו ולהחזירו לריצה
בוחרת תהליך אחר Qמבין כל המוכנים לריצה.
מפסיקה את פעולת P
משחזרת את Qומתחילה להפעיל אותו
התמונה של תהליך נקראת ההקשר שלו .ההקשר מוכרח להכיל מספיק
מידע לשיחזור ההרצה שהופסקה
5
תקורת החלפת ההקשר
התקורה :ה"צילום" ,ההחלטה את מי להריץ ,השחזור
דוגמא:
נניח שמתבצעת החלפה כל 100מילי-שניות
נניח שלוקחות 3מילי-שניות להחליף הקשר
אזי 3 /( 3 100) 3%מזמן העיבוד מתבזבז
(במהירות העיבוד האפשרית כיום ההחלפה יכולה להתבצע בפחות ממילי-שנייה)
6
רכיבי מנגנון החלפת ההקשר
נלמד עכשיו על:
המצבים האפשרים של תהליך
.1
טבלת התהליכים – המידע הנשמר על יד מ"ה עבור כל תהליך.
(נקרא גם ))Process Control Block (PCB
.2
.3
מבנה נתונים לניהול תהליכים :תור "מוכנים לריצה"
.4
מדיניות (אלגוריתם) זמנון – מי התהליך הבא שיכנס לריצה?
7
דיאגרמת שינוי מצב של תהליך:מצבי תהליכים
Ready
Interrupt
Admitted
(Started)
Event
Complete
Dispatched
Current
New
Waiting
I/O or other
Event Wait
Normal or
Abnormal Exit
Terminated
רלוונטייםCurrent- וReady רק מצבי:מבחינת החלפת הקשר
8
)PCB - Process Control Block ( טבלת התהליכים
הטבלה מכילה רשומה לכל תהליך
רשומת תהליך מכילה מידע על מצב התהליך ועל ההקשר הדרוש
)להרצתו (מכילה גם מידע נוסף שאינו רלוונטי להחלפת הקשר
:רשומת תהליך נראית בערך כך
Process State
אינדקס הכניסה בטבלה של
Priority
Process number
)Pid( תהליך הוא המזהה שלו
Program Counter
Stack Pointer
<registers>
I/O Status Information
Memory Information
Base
Limits
File Information
Accounting Information
9
מבנה נתונים :תור הממתינים לריצה
תור הממתינים לריצה:
תור דו-כווני הממוין לפי עדיפויות
(נקרא "תור עדיפויות")
PCB 0
><NULL
Prio 0
10
PCB 41
Prio 3
PCB 3
Prio 100
Ready Queue
head
tail
PCB 42
Prio 200
PCB 12
Prio: 200
כיצד התהליך מוחלף ?
ברמת החומרה נוצרת פסיקה כל תקופת זמן.
חיפוש פסיקות נעשה כל מחזור פקודה.
קיים מקום מיועד מראש בזיכרון שם רשומה כתובת התהליך עם
העדיפות הגבוהה ביותר.
ההחלפה נעשית על ידי רוטינה ייעודית (נפרד מהתהליך )system
11
מדיניות תזמון – אלמנטים מרכזיים
התהליך הבא נבחר מבין אלו הנמצאים בתור הממתינים
שני אלמנטים מרכזיים אשר יכולים להוות את הבסיס למדיניות
תזמון:
12
פרק זמן קצוב :לאחר לכל היותר פרק זמן (הנקרא בדרך כלל
)Quantumבו רץ התהליך הנוכחי הוא מוחלף –
חלוקה זו מבטיחה סוג מסוים של הוגנות ("סוציאליסטית")
עדיפויות (בשקף הבא)...
מדיניות תזמון – אלמנטים מרכזיים
עדיפויות:
התהליך הנוכחי הוא התהליך בעל העדיפות (הנוכחית) הגבוהה
ביותר.
עדיפויות יכולות להשתנות באופן דינאמי.
מדיניות זו מבטיחה סוג אחר של הוגנות ("קפיטליסטית" או
"מעמדית")...
13
שיקולים בקביעת עדיפויות
תהליכים של משתמשים "חשובים" יקבלו עדיפות גבוהה
system-administrator, managers...
עדיפות גבוהה לתהליכים שסיומם דחוף
תהליכים אינטראקטיביים יקבלו עדיפות גבוהה
14
שיקולים בקביעת עדיפויות
נרצה שתהליכי "צ ְַדקה" יהיו בעדיפות מינימלית:
חישובים מבוזרים קולקטיביים (לפיצוח בעיות קשות)
להטענת מסמכים מהרשת ()Push Technology
חישוב עד מיליון ספרות
צדקה...
15
קריטריונים להחלטה:
בני מדידה:
זמן ההגעה של הבקשה
הקדימות הראשונית של הבקשה
מוערכים (בדר"כ רלוונטי לעבודות אצווה בלבד ,וגם שם ההערכה לא
מדויקת):
זמן היע"מ
זיכרון
שורות פלט
משאבים נוספים
כל השיקולים האלה נותנים לנו מדד ל 'עדיפות ראשונית'.
16
דוגמא :חישוב עדיפויות בUNIX-
מחלקים את הזמן לקוונטות …1,2,3,
עדיפות תהליך jבתחילת הקוונטה ה i -היא:
ערך חיובי בטווח
19..1בשליטת
המשתמש
NICE j
)CPU j (i 1
:Basejעדיפות ראשונית של תהליך j
) :Uj(iתצרוכת יע"ם של תהליך jבזמן i
17
Pj (i ) Basej
2
)CPU j (i ) 12 U j (i ) 12 CPU j (i 1
ממוצע נע משוקלל אקספוננציאלית
ערך גבוה יותר –
עדיפות נמוכה יותר
yi= αxi + (1 - α(yi-1
איך בוחרים מדיניות תזמון?
ניתן להביא בחשבון מספר קריטריונים .למשל:
ניצול מקסימלי של המעבד
ִ מזְעּור ְתקּורה
זמן תגובה מינימלי (לטובת משתמשים אינטראקטיביים)
הספק ( :)throughputנרצה כי מספר גדול ככל האפשר של
תהליכים יסיימו את ריצתם בפרק זמן נתון
בדרך כלל מתקיים tradeoffבין הקריטריונים השונים :מדיניות תזמון
המשפרת אחד מהם גורמת להרעה באחרים
דוגמה קלאסית ל ,online-algorithmכלומר אלג' אופטימיזציה
שמקבל את הנתונים בזמן ריצה במקום מראש.
18
אלגוריתמי תזמון
non-preemptive : )FCFS( First Come First Serveידוע גם כ – ''FIFO
התהליך שהגיע ראשון לתור הממתינים יכנס ראשון
לא מספק דרישות שיתוף (.)time sharing
לא מתיימר למקסם ניצול התקנים
preemptive : )SJF( Shortest Job Firstאו non-preemptive
התהליך בעל יתרת זמן ריצה מינימלית יכנס ראשון
דורש ניבוי זמן הריצה של תהליך – כיצד?
שני אלגוריתמים אלו הם בעצם מקרים פרטיים של תזמון עדיפויות
19
SJF וFCFS :דוגמא
FCFS:
P1
P2
Execute time
24
Wait time
0
Average wait time = (0+24+27)/3 = 17 ms
3
24
P3
3
27
SJF:
P2
P3
P1
Now Average wait time = (0+3 + 6)/3 = 3 ms
20
דוגמאSJF:
לכל תהליך נציין את זמן העיבוד הרציף הנותר (למשל עד ק/פ) בms-
למשל )P1 (6) P2(8) P3 (7) P4 (3
סדר הריצה יהיה P4, P1, P3, P2
זמן ההמתנה הממוצע ( )Avg wait timeיהיה 8ms
בממוצע על כל הסדרים האפשריים FCFSנותן 12.07ms
21
בעיות עם SJFופתרונות
.1
.2
אי אפשר להיות הוגן באופן מוחלט
יכול לקרות מצב בו תהליכים ארוכים נדחפים לסוף התור לנצח,
אם כל הזמן מגיעות בקשות קצרות.
פתרונות:
נגביל את מספר הפעמים שתהליך יכול להיעקף .זה נקרא מדיניות:
shortest process next, with bypass and freeze
וותק בתור ,למשל:
)(/kזמן המתנה) ( / (1 +זמן יע"מ משוער) = ’c
לוקחים את התהליך בעל ה ’ cהנמוך ביותר כתהליך הבא.
kמבטא קבוע כלשהו ,המעיד על מידת החשיבות שאנחנו נותנים
לזמן ההמתנה.
22
מדיניות Round Robin
מדיניות :)RR( Round Robin
מחלקים את הזמן למרווחי זמן קבועים הנקראים ()Quantom
כל התהליכים המתחרים מאורגנים בתור מעגלי
התהליכים נכנסים לעיבוד לפי סדר הופעתם בתור
כל תהליך מקבל לכל היותר Quantumבכל סיבוב
23
מדיניות Round Robin
מספר תכונות של :RR
Preemptive
ביצועי RRתלויים בגודל .Quantum
נשים לב כי עבור Quantumגדול מאד RR ,שקול (אפקטיבית) ל-
FCFS
כי ב quantum -אחד ,כל המשימה מתבצעת.
24
Round-Robin
סיום
PCB
בביצוע
כניסה
PCB
בהמתנה
......
מצב 'מוכן'
25
PCB
בהמתנה
השוואות
נניח שזמן הקוונטה הוא qויש nתהליכים לפני התהליך הנוכחי.
- mמספר הפעמים שתהליך צריך להיכנס למצב ביצוע בממוצע.
זמן התגובה (התחלת תהליך)nq :
מסקנה :להקטין את .qהבעיה שאי אפשר להקטין יותר מדי בגלל
התקורה של החלפת ההקשר.
26
זמן המתנה
נניח ש ( t >> qכלומר לא מסתיים בקוונטה אחת).
נניח שזמן הביצוע של התהליך ה i -הוא .ti = mi * q
זמן ההמתנה = mi(n*q) = n(mi*q) = nti
( עובר miפעמים במעגל ,כל פעם זה nqזמן).
27
זמן המתנה
ב FCFS -הזמן היה nT
ההבדל הוא ש ti -מתייחס לתהליך עצמו ,ו T-לתהליך 'ממוצע'.
כלומר לתהליך כדאי להיות ב RRאם ,mi < mכלומר אם הוא קצר
מהממוצע.
אם כל התהליכים בתור הם שווי אורך ,זמן ההמתנה בשיטת הריצה
המעגלית שווה לזה של .FCFS
28
זמן סיום
זמן סיום = זמן המתנה +זמן ביצוע
תהליכים קצרים (משך ביצוע קטן מ nq + q :)q
תהליכים ארוכיםmiq + nti :
תהליכים ארוכים 'מקופחים' באופן זה .ישנן גישות לתיקון.
למשל ,לתת q,2q,4qוכו' זמן מעבד לפי מספר הכניסה לתור.
כלומר ,ככל שיותר זמן ממתינים ,כך העדיפות גדלה.
29
דוגמה למשבץ המערב מספר אסטרטגיות:
רמה :0מערכת
...
רמה :1משתמש בקדימות
גבוהה
PCB
...
PCB
רמה :2מסופים (ללא עיבוד מקומי.
דורש אינטראקטיביות מיידית)
PCB
...
PCB
,FCFSכי תהליכים יחסית נדירים
ריצה מעגלית עם qקטן
רמה :3משתמשים אחרים
ריצה מעגלית עם qארוך
רמה :4משתמשי אצווה
( FCFSאו )SJF
רמה idle process :5
30
PCB
PCB
, FCFSכי תהליכים קצרים
וצפויים ,חבל לבזבז תקורה