אוקטובר 20021 זימון תהליכים Process Scheduling. אקטובר 2002 2עמוד...
-
date post
21-Dec-2015 -
Category
Documents
-
view
246 -
download
6
Transcript of אוקטובר 20021 זימון תהליכים Process Scheduling. אקטובר 2002 2עמוד...
2002אוקטובר 1
זימון תהליכיםProcess Scheduling
2002אקטובר עמוד2
נושאיםמבוא לזימון תהליכים
מצבי תהליך–בעיית זימון התהליכים–מדדים לאיכות זימון תהליכים–
מדינויות זימוןFirst-Come First-Serveאלגוריתם –Round Robinאלגוריתם –(Shortest Processing Time First)מזעור זמן שהייה ממוצע – Shortest Remaining Time to )זמני הגעה לא אחידים–
Completion First)(Windows NTשימוש בכמה תורים )דוגמא –
2002אקטובר עמוד3
מצבי תהליך
סיום יצירה
מוכןReady
רץRunning
המתנהWaiting
מתקבלזימון
יציאה
פסיקה/וויתור
ק"פ או המתנהלארוע
ק"פ או ארועהסתיים
טווח קצר
טווח בינוני/ארוך
2002אקטובר עמוד4
מתי "זימון תהליכים" נכנס לפעולה?
ניתן לבצע החלטות זימון כאשר תהליך עוברממצב למצב
"רץ" למשל, תהליך שמבצע פקודת ק"פ, עובר ממצב –"המתנה"למצב
"האם ניתן לאלץ תהליך לעבור ממצב "רץלמצב "מוכן"?
(Preemptive) בר הפקעההזימון נקרא אם כן,–(Non-preemptive) ללא הפקעהאם לא, הזימון נקרא –
(Cooperative)תהליך חייב לשתף פעולה •Windows 3.1למשל ב-•
התכנות בשתי הסביבות יכול להיות מאד שונה. מדוע?–
2002אקטובר עמוד5
תקורה בזימון תהליכים
זימון תהליכים אינו חינםKernel modeמעבר ל-–(Context switch)החלפת הקשר –
שמירת המצב\הקשר של התהליך היוצא•טעינת המצב\הקשר של התהליך הנכנס•
וקפיצה לפקודה הבאהUser mode ל- מעבר–
…ישנו גם מחיר מוסתר–Page faults–Cache misses
2002אקטובר עמוד6
בעיית זימון התהליכים
הבעיה מסוים תהליך )המשאב( למעבדהקצאת ה–
מסויםפרק זמןלדרגות החופש
תהליך איזהמבין התהליכים שמוכנים לרוץ, –לבחור
נקצה את המעבד לתהליך שנבחרכמה זמןל–
2002אקטובר עמוד7
איפיון תהליכים
תהליך עתיר חישובים(CPU-bound)
תהליך עתיר קלט/פלט(I/O-bound)
CPU I/O CPU I/O CPU
I/O CPU I/O CPUCPU
2002אקטובר עמוד8
מדדים הקובעים את "טיב"מדיניות הזימון
ניצולת המעבד(CPU utilization)אחוז הזמן שהמעבד "פעיל"–
תפוקה (Throughput) מספר יחידות העבודה שהושלמו בפרק זמן נתון–
זמן ביצוע תהליך(Turn-around-time) מרגע שיגור התהליך עד לסיומו–
זמן המתנה למעבד(Waiting time)סכום הזמנים בהם התהליך במצב "מוכן"–
זמן תגובה(Response time)בתהליך אינטראקטיבי, פרק הזמן בין הגשת בקשה ע"י המשתמש –
עד לתגובת המערכת )תצוגת פלט(
2002אקטובר עמוד9
מהו המדד הנכון?
...תלויבסביבה אינטראקטיבית–
חשוב זמן תגובה קצר• נמוכה חשובה לא פחותשונות... אך •
(batchבסביבת אצווה )–רצוי למקסם תפוקה•
2002אקטובר עמוד10
הגדרת מדדים
של תהליך יחס הענישה Pi הואti/Tiכאשר
–Ti סה"כ זמן שתהליך בטווח זמן השהייה - הוא - הקצר - במצב "רץ" או "מוכן"
–ti "הוא סה"כ זמן שתהליך במצב "רץ -
של תהליך, תחת זמן שהייה ממוצע Aמדיניות זימון
הוא מספר התהליכיםN כאשר –
N
kkA T
NH
1
1
2002אוקטובר 11
מדינויות זימון
2002אקטובר עמוד12
First Come First Serve )FCFS(הגדרה
המעבד מוקצה לתהליך הראשון שדורש אותו–
פרטי מימוש–Non-preemptive של התהליכים במצב מוכןFIFOממומש ע"י תור –של תהליך תלוי בזמן ובסדר הגעתו זמן שהייה–יחס ענישה גבוה לתהליכים קצרים ונמוך לארוכים–
P1 P2 P3
P1P2 P3
time0 3 6 24 27 30
avg_wait_t=17
avg_wait_t=3בהנחה שכולם מגיעים)(באותו זמן
2002אקטובר עמוד13
First Come First Serve )FCFS((Convoy effect)אפקט השיירה
אפיוןCתהליך אחד עתיר חישובים: –I1,…,In מספר תהליכים עתירי קלט/פלט:–
(non-preemption)בהנחת –אפקט
Ij תופס את המעבד, תהליכי C ברגע שתהליך –מצטברים בתור המוכנים
!התקני הק"פ מובטלים–
2002אקטובר עמוד14
Round Robin )RR(
הגדרהqהמעבד מוקצה לתהליך הראשון בתור לזמן ≤ –, התהליך מופסק qאם זמן החישוב של התהליך גדול מ-–
ומועבר לסוף תור ה-"מוכנים"
פרטי מימוש–Preemptive–Quantum 10-100 אופייניmsecq שמייצר פסיקה כל פרק זמן timerממומש בעזרת –
2002אקטובר עמוד15
Round Robin )RR(אפיונים
-אם הquantum"קטן, הזימון "הוגן תחושה שכל תהליך רץ במעבד משלו עם –
הוא מספר התהליכים – N, כאשר N/1בקצב יחס ענישה אחיד.
זמן תגובה )כמעט( ליניארי בזמן החישוב –.Nוב-
אך התקורה עלולה להיות גבוהה! –דוגמא
N=10מספר תהליכים –100זמן חישוב של תהליך ––q=1
RR FCFS תהליך
991 100 1
992 200 2
…
1000 1000 10
2002אקטובר עמוד16
Selfish Round-Robinהכללה:
הגדרהFIFOתהליכים חדשים מוחזקים בתור המתנה – לביצועRound-Robinתהליכים וותיקים מוחזקים בתור –כאשר אין תהליך בתור הוותיקים, בוחרים את הראשון –
בתור החדשים ומצרפים אותו לוותיקים"הזדקנות" – תהליך הופך מחדש לוותיק, למשל על ידי כך –
שמגדילים את עדיפות כל תהליך בכל יחידת זמן עד מעבר לסף שהופך אותו לוותיק
איפיוןRRאם ההזדקנות קצרה )או לא קיימת( מתקבל –FCFSאם ההזדקנות ארוכה )או אינסופית( מתקבל –
2002אקטובר עמוד17
Shortest Processing Time First )SPTF(
הנחה התהליכים מגיעים יחד לביצועNכל –(ti) ידוע מראש Piזמן הריצה של תהליך –
הגדרהמינימלי שירוץ עד סיומו tiבוחרים את התהליך עם –
פרטי מימוש–Non-preemptive?tiאבל... איך מנחשים את –
2002אקטובר עמוד18
עם הפקעה או ללא הפקעה?
:זמן שהיה ממוצע עבור מדיניות זימון נזכיר A:
למה N )עבור A עם הפקעהלכל מדיניות זימון –
ללא ’Aתהליכים שמגיעים יחד(, קיימת מדיניות הפקעה כך ש-
AA HH `
N
kkA T
NH
1
1
2002אקטובר עמוד19
עם הפקעה או ללא הפקעה? )המשך(
הוכחהA תהליכים לפי זימון Nבהינתן זימון של – התהליך שמסתים אחרוןPkיהי –
לסוף הזימוןPkנצופף את ריצת –
לא השתנה וזמן השהייה של Pkזמן השהייה של –התהליכים האחרים לא גדל
Pk Pr Pk PkPr
PkPr Pk PkPr
time
time
2002אקטובר עמוד20
לפי SPTFאופטימליות של HAמדד
משפטאם כל התהליכים מגיעים יחד, לכל מדיניות זימון –
A
הוכחה היא מדיניות ללא Aלפי הלמה, ניתן להניח ש-–
הפקעה Pk, חייבים להיות שני תהליכים SPTF לא Aאם –
Pk מתוזמן מיד אחרי Pr ו-tk < tr כך ש-Prו-
ASPTF HH
2002אקטובר עמוד21
SPTFאופטימליות של )המשך( HAלפי מדד
המשך(הוכחה( זמן שהייה ממוצע אחרי ההחלפה:–
זמן השהייה הממוצע לא גדל!–
SPTF חוזרים על ההחלפות עד שהתזמון נהיה–
Pr PkPrPk
לפניאחרי
Tr Tk
tr tk
time
)(1
...)(...)(...1
1
rki
Nrkkr
ttTN
TtTtTTN
2002אקטובר עמוד22
RRזמן שהייה ממוצע תחת
משפטאם כל התהליכים מגיעים יחד, אזי–
הוכחה את העיכוב שנגרם לתהליך )delayA)i, jנסמן ב-–
Pj עקב זימונים של תהליך Pi תחת מדיניות A
: כלשהי, מתקייםAעבור מדיניות –
Nji
AA
N
iiA ijdelayjidelaytHN
11
),(),(
SPTFRR HH 2
2002אקטובר עמוד23
RRזמן שהייה ממוצע תחת )המשך(
SPTFעבור
Round Robinעבור
i<j
Pi Pj time
Pi Pj time
PiPj Pj Pj Pj Pj Pj
Nji
ji
N
iiSPTF tttHN
11
),min(
Nji
ji
N
iiRR tttHN
11
),min(2
2002אקטובר עמוד24
Shortest Remaining Time to Completion First )SRTF(
הגדרה עם זמן חישוב נותר קצר יותר Piכאשר מגיע תהליך –
, אזי Pkמשארית זמן החישוב של התהליך שרץ כרגע Pi ומכניסים את Pkמפקיעים את המעבד מ-
משפט–SRTF ממזער את זמן השהייה הממוצע במערכת )בדומה
(SPTFל-הוכחה
SPTFדומה להוכחת האופטימליות של – מה ההבדל ביןSRTF -ו SPTF?
–SRTFעובד טוב גם כאשר תהליכים לא מגיעים יחד
2002אקטובר עמוד25
הבעיהקשה לנבא את זמן החישוב שתהליך יצטרך–
פיתרון)מריצים התהליך כמה פעמים ומנחשים לעתיד(אומדן סטטיסטי –i -הערכת זמן החישוב לסיבוב ה –i• ti – -זמן החישוב בפועל בסיבוב הi
!שימו לב = 0 זמן הריצה האחרון בפועל קובע )היסטוריה –
קרובה( = 1!זמן ריצה בפועל לא משפיע –
אומדן זמן החישוב של תהליך
iii tα)(τατ 1110 α
2002אקטובר עמוד26
שימוש במספר תורים
ניתן להפריד תהליכים לקבוצות שונותלפי איפיונם
–foreground, background… ,-מדיניות תזמון מתפרקת ל
מדיניות תזמון בין התהליכים השייכים לאותה –קבוצה
מדיניות תזמון בין קבוצות שונות–
2002אקטובר עמוד27
ריבוי תוריםMultilevel Feedback Queues
הגדרהקיימים מספר תורים לפי סדר עדיפות–
תור גבוה לתהליכים בעלי עדיפות גבוהה יותר•
תהליך מתחיל בתור הגבוה ביותר–, הוא יורד לתור נמוך quantumאם הוא צורך את כל ה-–
יותר )עקב -quantumאם תהליך משחרר המעבד לפני סוף ה–
פעולת ק"פ(, הוא חוזר לתור גבוה יותרפרטי מימוש
לתורים הנמוכים נקצה אחוז קטן יותר של זמן מעבד– עולה עבור תורים נמוכים יותרquantumה-–
2002אקטובר עמוד28
דוגמאWindows NTזימון ב-
שימוש בתורים לפי עדיפות(dispatcher ready queues) תורים 32–
•Real time priority (16-31 )עדיפויות•Variable priority (1-15 )עדיפויות שמורה למערכת(0)עדיפות •
מדיניותRound Robinעל התור העדיף ביותר שאינו ריק–
-העדיפות יורדת אם נצרך כל הquantum-העדיפות עולה אם תהליך עובר מwait-ל ready
העדיפות נקבעת ע"פ סוג הק"פ–ק"פ מהמקלדת מקנה עדיפות גבוהה•