תרגול 5 זימון Flashcards
מהם המטריקות לזימון תהליכים
לכל התהליכים
זמן תגובה ממוצע
זמן תגובה של תהליך בודד הוא הזמן שלקח לו לרוץ
ResponseTime = end - arrival
זמן המתנה
WaitTime = start - arrival
FCFS ראשי תיבות
First come first serve
סוג קל fifo
מהו אפקט השיירה
איך נקרא באנגלית
Convey effect
בעיה שיכולה לקרות בfifo fcfs
יגיע תהליך מאוד ארוך בהתחלה ואז הוא יתקע את כל התהליכים הקצרים שמגיעים אחריו ואז זמן התגובה גדל לכולם
יכול גם לקרות בsjf אם לא כולם מגיעים באותו זמן
Sjf
ראשי תיבות ומה הוא עושה
Shotest job first
תהליך קצר ביותר הוא הבא
אם מוותרים על ההנחה שכל התהליכים רצים למשך אותו זמן מה האלגוריתם הכי טוב מבחינת זמן תגובה
Sjf
מוכח בהרצאה
Srtf
ראשי תיבות
תאר בכלליות
Shotest remaining time first
כל פעם שנכנס תהליך חדש בודק למי נשאר הכי פחות זמן ומריץ אותו
מתי srtf אופטימלי
אם לא כולם רצים אותו זמן
לא כולם מגיעים ביחד
ואפשר לעצור תהליך באמצע
ההנחה היחידה היא
זמן הריצה ידוע מראש
תהליכים משתמשים רק במעבד ולא io
עוד שם לsrtf
Stcf
Ahortest time to comletion first
אם תהליכים מבצעים גם io
איל נסתכל על התהליכים אם לדומה יש תהליך שכל 10 שניות עושה io
נסתכל על תתי המשימות שלו באורך10 כעת משימות שיש לשבץ
אם זמן הריצה ידוע מראש
למה לא כדאי למשתמש להעריך שמשימה שלו תהיה הרבה יותר מדי זמן?
מצד אחד זה יבטיח שהמשימה שלו תתבצע
מצד שני ככל שיותר נמוך הוא יקבל תעדוף בsjf and srtf
איזה הנחות מניח batch scheduling?
תהליך רץ עד סיומו
תהליכים משתמשים רק במעבד ולא io
זמן הריצה של כל התהליכים ידוע מראש
איזה שני סוגי תהליכים יש
ובאיזה מדד כל אחד מהם מעוניין
מבחינה תיאורתית
Cpu bound חישובי
אינטרקטיבי io bound
חישובי מעוניין בזמן תגובה נמוך
לסיים כמה שיותר מהר
בדרך כלל לא מוותר על המעבד
אינטרקטיבי מעוניין בזין המתנה נמוך
לדוגמה נגן סרטים שמחליף תמונה 60 פעמים בשנייה
בדרך כלל יוותר בעצמו על המעבד בעת המתנה לio
מה אפשר להגיד על sjf and srft
מול מדד זמן המתנה
לא טובים בו בכלל כי כל תהליך צריך לחכות המון זמן עד שמתחיל בכלל
RR
ראשי תיבות ובמה מצטיין
Round robin
מצטיין בזמן המתנה נמוך
מחלק את הזמן לפיסות בשם קוונטום ונותן באופן שוויוני לתהליכים קוונטום אחד כל פעם
מה האילוץ של הקוונטום מול זמן פסיקת שעון
צריך להיות כפולה שלו
למה עדיף קוונטום נמוך
או גבוה
נמוך נותן זמן המתנה נמוך יותר ויותר אינטרטיביות
גבוה מקנה פחות החלפות הקשר וביצועים טובים יותר
איך מחשבים תקורה של אלגוריתם
זמן החלפת הקשר
חלקי
אורך קוונטום
מה sjf srtf
ומה rr מנסים להשיג
האם יודעים את זמן הריצה של כל תהליך מראש?
להביא למינימום זמן תגובה
מקבלים זמן המתנה גרוע
מניחים שיודעים את זמן הריצה של כל תהליך מראש
להביא למינימום את זמן ההמתנה הממוצע
משיג זמן תגובה גרוע
לא יודע את זמן הריצה מראש
דוגמה להתהליך בלינוקס זמן אמת שרץ באמת
תהליך בשם migration
יש אחד לכל ליבה
אחראי לפיזור של תהליכים על גבי הליבות
מעביר תהליכים בין תורי הריצה
איזה שני סוגים של תהליכים יש
מבחינה הגדרתית
זמן אמת
נדרשים לעמוד באילוץ על זמן תגובה
ורגילים
יכולים לסבול דיחוי בזמן הריצה
מי יכול להגיד תהליך כזמן אמת?
ואיך
רק root
עי שינוי העדיפות שלו
כמה תורי ריצה יש בלינוקס
אחד לכל מעבד
איזה תהליכים נשמרים בתור הריצה
כל התהליכים המוכנים לריצה
במצב task running