Download presentation
Presentation is loading. Please wait.
1
פה מחלקים דיסקים ?
2
platter surface Reading head tracks sectors cylinder Magnetic Disk rotating מבנה הדיסק הדיסק מחולק לצלחות (platters) לכל צלחת יש ראש קורא מכל צד כל צד מחולק למסלולים (tracks) כל מסלול מחולק לסקטורים צילינדר מתייחס למסלול באותו מיקום בכל הצלחות
3
איך זה עובד ? כל הצלחות מסתובבות יחד סביב אותו ציר. כל בקשת קריאה או כתיבה לדיסק מתייחסת לסקטור מסלול וצלחת. הזרוע מזיזה את הראשים למיקום המסלול המבוקש ואז הראש המתאים ממתין להגעת הסקטור ומבצע בו קריאה או כתיבה. ברוב המערכות כל זרוע מנוהלת באופן עצמאי, וישנו זיכרון (RAM) ששומר את המידע ומנוהל ע " י בקר אשר קובע מה להעביר לזיכרון הראשי ומתי. סקטור הנו יחידת הכתיבה / קריאה הבסיסית ( סדר גודל של 512 בתים ).
4
דוגמא ? כמה זמן בממוצע תיקח קריאת סקטור בן 512 בתים, אם זמן החיפוש ( הזזת הזרוע ) הממוצע הוא 5ms, קצב העברת הנתונים הוא 40MB/sec, קצב הסיבוב הוא 10,000 RPM (Revolutions Per Minute) ולבקר הדיסק יש תקורה של 0.1ms? avg_disk_access = avg_seek_time + avg_rotation_delay + transfer_time + controller_overhead
5
משפט little ראשית נגדיר מספר מושגים : Time observed – משך המעקב אחר המערכת Number task – סך המשימות שהושלמו בזמן המעקב Time accumulated – סכום הזמנים אותם המשימות העבירו במערכת נאמר אם כן שממוצע המשימות במערכת הוא : Time accumulated / Time observed וזמן הטיפול הממוצע הוא : Time accumulated / Number task וקצב הגעת משימות : Number task / Time observed
6
משפט little ממשחק אלגברי עם המשוואות הנ " ל ניתן לקבל את משפט little: ממוצע המשימות במערכת = קצב הגעת משימות זמן הטיפול הממוצע
7
עוד מושגים : Time server – זמן ממוצע לטיפול במשימה Time queue – זמן ממוצע למשימה בתור Time system – זמן ממוצע למשימה במערכת ( חיבור שני הקודמים ) Arrival rate – קצב הגעת משימות ( משימות / שנייה ), נהוג לסמן כ - Length server – מספר ממוצע של משימות בשירות Length queue – אורך ממוצע של התור Length system – מספר ממוצע של משימות במערכת ( סכום שני הקודמים )
8
M/M/1 הנחות : המערכת בשיווי משקל. הזמן בין הגעת בקשות מתפלג אקספוננציאלית. בקשות ממשיכות להגיע כל הזמן. השרת יכול לטפל בבקשה הבאה מיד עם סיום הטיפול בבקשה הקודמת. אין הגבלה על גודל התור והוא עובד ב -FIFO. יש שרת בודד.
9
ניצולת ניצולת השירות / טיפול, היא למעשה מספר המשימות בטיפול בממוצע חלקי קצב הטיפול. עבור שרת יחיד ( דיסק יחיד ) קצב בשירות הוא 1/Time server, מתקבל אפוא : Server utilization = Arrival rate Time server ערך הניצולת אמור להיות מספר בין 0 ל - 1, כי אחרת אנו מקבלים יותר משימות מאשר אנו יכולים להתמודד. נהוג לסמן את הניצולת כ - .
10
דוגמא נניח מערכת עם דיסק יחיד שמקבלת בממוצע 50 פניות I/O בשניה. נניח גם שממוצע זמן הטיפול של הדיסק בבקשת I/O הוא 10ms. מהי הניצולת ? ע " פ המשואה נחשב : Server utilization = Arrival rate Time server =
11
זמן המתנה משימה חדשה שנכנסת לתור צריכה להמתין שכל המשימות בתור לפניה יטופלו וכן יסתיים הטיפול במשימה שכרגע מטופלת : Time queue = Length queue Time server + Mean time to complete task being served עבור הגעת משימות בהתפלגות אקספוננציאלית ( ובפרט פואסונית ) ניתן להתייחס לזמן ההמתנה למשימה בטיפול כ : Server utilization Time server כאשר הניצולת מייצגת את הסיכוי שיש משימה בטיפול.
12
זמן המתנה - המשך Time queue = length queue Time server + server_utilization Time server = = (Arrival rate Time queue ) Time server + server_utilization Time server = = server_utilization Time queue + server_utilization Time server חוק little
13
Time queue - server_utilization Time queue = server_utilization Time server Time queue (1 - server_utilization) = server_utilization Time server Time queue = Time server server_utilization (1 - server_utilization) זמן המתנה - המשך
14
ע " פ חוק little מתקיים : length queue = Arrival rate Time queue ואם נציב, נקבל : length queue = Arrival rate Time server length queue = server_utilization length queue = server_utilization (1 - server_utilization) server_utilization (1 - server_utilization) server_utilization 2 (1 - server_utilization)
15
דוגמא עבור אותה דוגמא מקודם, כאשר לשרת ניצולת של 0.5, מהו ממוצע המשימות בתור ? length queue = == 0.25/0.5 = 0.5 server_utilization 2 (1 - server_utilization) 0.5 2 (1 – 0.5)
16
M/M/m אותן הנחות כמו M/M/1, רק שמדובר ב -m שרתים. נתאים את הנוסחאות : Utilization = Length queue = Arrival rate Time queue Time queue = Time server Arrival rate Time server N servers Prob tasks N servers N servers (1-Utilization)
17
כאשר :
18
תרגיל א- נניח שהמעבד שולח 40 בקשות I/O לדיסק לשניה. הבקשות מפולגות אקספוננציאלית, וזמן הטיפול הממוצע של הדיסק הוא 20ms. 1) מהי ניצולת הדיסק ? 2) מהו זמן ההמתנה הממוצע בתור ? 3) מהו זמן ההמתנה הממוצע של בקשת I/O ( כולל ההמתנה בתור וטיפול של הדיסק )?
19
פתרון 1.Server utilization = Arrival rate Time server = 40 0.02 = 0.8 2.Time queue = Time server = 20ms = 20 4 = 80ms 3. זמן המתנה = Time queue +Time server = 80+20 = 100ms server_utilization (1 - server_utilization) 0.8 (1 – 0.8)
20
ב- החליפו את הדיסק בדיסק חדש עם זמן טיפול ממוצע של 10ms. ענה על אותן שאלות. 1.Server utilization = 40 0.01 = 0.4 2.Time queue = 10ms = 10 2/3 = = 6.7ms 3. זמן המתנה = 10 + 6.7 = 16.7ms ( פי 6 יותר מהיר ) 0.4 (1 – 0.4)
21
ג - במקום דיסק מהיר יותר, הוסיפו דיסק עם מהירות זהה ( זמן טיפול ממוצע 20ms). ענה על השאלות. 1.Server utilization = = (40 0.02) / 2 = 0.4 2.Prob 0 tasks = Arrival rate Time server N servers
22
Time queue = Time server 3. זמן המתנה = 20 + 3.8 = 23.8ms Prob tasks N servers N servers (1-Utilization)
23
תרגיל נתונה מערכת בה ממוצע בקשות של 60 בקשות I/O לשנייה מפולגות אקספוננציאלית. למערכת דיסק יחיד אשר מעביר בכל בקשת קריאה / כתיבה, סקטור יחיד בן 512 בתים. זמן החיפוש הממוצע של הראש הקורא הוא 9ms, קצב העברת נתונים של 2MB/sec, קצב סיבוב של 6000RPM ולבקר הדיסק תקורה של 0.75ms.
24
הוצעו מספר אפשרויות לשיפור המערכת : 1. הגדלת הזיכרון ובכך לגרום שמספר הבקשות לשנייה יקטן פי 10. 2. להוסיף שני דיסקים זהים. 3. לשפר מהירות דיסק באופן הבא, ניתן להכפיל את המהירות של שניים מהבאים : זמן חיפוש / קצב העברת נתונים / מהירות סיבוב מה ייתן את השיפור הטוב ביותר ?
25
זמן הטיפול הממוצע של הדיסק avg_disk_access = avg_seek_time + avg_rotation_delay + transfer_time + controller_overhead =
26
1. הגדלת הזיכרון Server utilization = (60/10) 0.015 = 0.09 Time queue = 15ms = 15 9/91= = 1.48ms זמן המתנה = 15 + 1.48 = 16.48ms 0.09 (1 – 0.09)
27
2. הוספת שני דיסקים Server utilization = (60 0.015) / 3 = 0.3
28
זמן המתנה = 15 + 0.5 = 15.5ms
29
3. שיפור מהירות הדיסק קל לראות שעדיף לשפר זמן חיפוש ומהירות סיבוב. avg_disk_access =
30
Server utilization = 60 0.008 = 0.48 Time queue = 8ms = 8 48/52 = = 7.3846ms זמן המתנה = 8 + 7.3846 = 15.3846ms 0.48 (1 – 0.48)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.