Download presentation
Presentation is loading. Please wait.
1
זיכרון וירטואלי Virtual Memory
מרץ 2002 אלן אזאגורי ©
2
נושאים מבוא אלגוריתמים לדפדוף דוגמאות ניהול זיכרון פסיקות דף
מחיר זיכרון וירטואלי אלגוריתמים לדפדוף אופטימליות First In First Out LRU קבוצת עבודה דוגמאות OS/2 WindowsNT מרץ 2002 אלן אזאגורי ©
3
זיכרון וירטואלי מבוא הבעיה
גודל הזיכרון הפיזי קטן מגודל הזיכרון הדרוש להרצת התהליך מרץ 2002 אלן אזאגורי ©
4
זיכרון וירטואלי מבוא – segmentation
פיתרון א' חלוקת הזיכרון לסגמנטים ע"י המתכנת המתכנת יכול לטעון/לפרוק סגמנטים לפי הצורך בעת זימון תהליך, מערכת ההפעלה טוענת את הסגמנטים הפעילים של התהליך מרץ 2002 אלן אזאגורי ©
5
זיכרון וירטואלי מבוא – segmentation
יתרונות פשטות מימוש יעילות – תרגום כתובות פשוט ע"י שימוש ב-base registers חסרונות אחריות המתכנת לחלוקת התכנית לסגמנטים תקורה לניהול הבאת/הוצאת סגמנטים מרץ 2002 אלן אזאגורי ©
6
זיכרון וירטואלי מבוא – דפדוף – paging
פיתרון ב' חלוקת הזיכרון לדפים בגודל קבוע (512B – 4KB) למתכנת יש אשליה של מרחב זיכרון לינארי גדול מאוד מערכת ההפעלה ממפה וטוענת דפים לתוך מסגרות לפי הצורך זיכרון מדומה (דפים) מנגנון מיפוי/תרגום זיכרון פיזי (מסגרות) מרץ 2002 אלן אזאגורי ©
7
זיכרון וירטואלי פסיקת דף – Page Fault
גישה לא חוקית לזיכרון הדף הדרוש לא נמצא בזיכרון שלבים בטיפול page fault מצא מסגרת פנויה – אם אין, פנה דף ממסגרת לדיסק בצע פקודת ק"פ לקרוא את הדף מהדיסק עדכן את טבלת המיפוי (חומרה) חזור על הפקודה שגרמה ל-page fault מרץ 2002 אלן אזאגורי ©
8
זיכרון וירטואלי אלגוריתם דפדוף – מאפיינים
מתי ממפים דף למסגרת? דפדוף לפי דרישה (demand paging) מביאים דף לזיכרון רק אם התהליך ניגש אליו לעומת הבאה מוקדמת (prefetching) מהיכן נפנה/נקצה מסגרת? דפדוף לוקלי – כל תהליך מנהל קבוצת מסגרות משלו דפדוף גלובלי – ניתן לפנות מסגרות של תהליכים אחרים מרץ 2002 אלן אזאגורי ©
9
זיכרון וירטואלי מבוא – מיפוי מלא/חלקי
בעת זימון תהליך, מערכת ההפעלה טוענת את כל מרחב הכתובות של התהליך מיפוי חלקי מערכת ההפעלה טוענת רק חלק ממרחב הכתובות של התהליך מה מבטיח ביצוע סביר? ברוב הפעמים, רוב חלקי התכנית לא מתבצע (למשל שגרות המטפלות בשגיאות) לוקליות בזמן/במרחב – בפרקי זמן קצרים, התכנית ניגשת לאותם כתובות (לולאות פנימיות) ולכתובות סמוכות מרץ 2002 אלן אזאגורי ©
10
מחיר דפדוף ב-demand paging
מהו זמן גישה ממוצע לזיכרון? effective access time = (1 – p) ma + p pftime p – הסתברות ל-page fault ma – זמן גישה לזיכרון (סדר גודל של 10nsec) pftime – זמן טיפול ב-page fault (8 msec) מהו ערך סביר ל-p? p=1/1000 – effective access time = sec יאיט את הביצוע פי 800 לקבלת הרעה של 10% – p=1.25e-7 מרץ 2002 אלן אזאגורי ©
11
זיכרון וירטואלי סחרור - Thrashing
מערכת ההפעלה מתרכזת בטיפול בדפים, ללא ביצוע עבודה "מועילה" משמעותית CPU Utilization Degree of multiprocessing מרץ 2002 אלן אזאגורי ©
12
אלגוריתמים לדפדוף מרץ 2002 אלן אזאגורי ©
13
איזה דף לפנות? המטרה שיקולים נוספים שימו לב! מזעור מספר פסיקות הדף
מחיר פינוי דף "מלוכלך" יקר יותר מאשר פינוי דף נקי מחיר שונה להבאת דפים שונים ... שימו לב! טיפול בפסיקת דף מתבצע on-line תהליך פינוי דפים בד"כ מתבצע ברקע (off-line), כאשר מספר המסגרות הפנויות יורד מתחת לאיזשהו סף כמו כן, דפים מלוכלכים נכתבים ברקע לדיסק מרץ 2002 אלן אזאגורי ©
14
אלגוריתם לדפדוף אופטימלי
הנחה כל הגישות לזיכרון ידועות מראש הגדרה – אלגוריתםOPT ("האלגוריתם החמדן") מפנה מהזיכרון את הדף שהזמן עד לגישה הבאה אליו הוא הארוך ביותר דוגמא סדרת גישות לדפים: A,B,C,A,B,D,A,D,B,C,B A B C D 1 2 מסגרות מרץ 2002 אלן אזאגורי ©
15
אופטימליות של OPT טענה הוכחה
תהי r1, r2, …, rn סדרת n גישות לזיכרון יהי m מספר המסגרות בזיכרון הפיזי יהי A אלגוריתם כלשהו ל-demand paging נוכיח באינדוקציה שניתן להחליף את ההחלטות של A בהחלטות של OPT מבלי להגדיל את מספר פסיקות הדף אינדוקציה על i – מספר הגישות הראשונות בסדרה בסיום סדרת שינויי ההחלטות נגיע לאלגוריתם OPT מרץ 2002 אלן אזאגורי ©
16
אופטימליות של OPT הוכחה
k ak l al בסיס האינדוקציה i = m (מספר המסגרות) תוכן הזיכרון זהה כיוון שעד כה לא פינינו אף דף צעד האינדוקציה נניח שאחרי i צעדים, הדפים a1, a2, …, am נמצאים בזיכרון והגישה הבאה היא לדף ri+1 שאיננו בזיכרון A מפנה את ak בעוד ש-OPT מפנה את al OPT A k ak l ri+1 k ri+1 l al מרץ 2002 אלן אזאגורי ©
17
אופטימליות של OPT הוכחה (המשך)
נגדיר אלגוריתם A’ שמתנהג כמו OPT עבור i+1 הצעדים הראשונים לאחר מכן, A’ מתנהג כמו A עד ש- A מפנה את al A’ מפנה את ak התהליך ניגש ל-ak (שאיננו בזיכרון) ו-A מפנה את an A’ מפנה את an ומביא את al שימו לב! הגישה ל-ak תקרה לפני הגישה ל-al ולכן (1) או (2) חייבים לקרות לפני הגישה הבאה ל-al ב-(2), ניתן להמתין עד לגישה ל-al – אחרת האלגוריתם אינו demand paging מרץ 2002 אלן אזאגורי ©
18
אופטימליות של OPT הוכחה (המשך)
בגישה הבאה ל-al מצב הזיכרון זהה עבור A ו-A’ לכן לא הגדלנו את מספר ה-page faults השהית הבאת דף במקרה (2) מאפשר הקטנת מספר ה-page faults איך? מרץ 2002 אלן אזאגורי ©
19
הגדלת הזיכרון הפיזי תכונה רצויה באלגוריתם דפדוף (*) אלגוריתם מחסנית
נרצה שאם נגדיל את הזיכרון הפיזי, אזי מספר פסיקות הדף יקטן (או לפחות לא יגדל) אלגוריתם דפדוף שאינו בעל תכונה זו מקיים את האנומליה של Belady (שתודגם בהמשך) אלגוריתם מחסנית תהי S(A, k, R) קבוצת הדפים המצויים בזיכרון לאחר ביצוע אלג' A לסדרת גישות R עם זיכרון בעל k מסגרות אם A מקיים S(A, k+1, R) S(A, k, R) אזי A נקרא אלגוריתם מחסנית אלגוריתם מחסנית מקיים את (*) אלגוריתם OPT הוא אלגוריתם מחסנית מרץ 2002 אלן אזאגורי ©
20
אלגוריתם FIFO הגדרה דוגמא
A B C D 1 2 מרץ 2002 אלן אזאגורי ©
21
אלגוריתם FIFO אנומלית Belady
C D E 1 2 דוגמא A E D 1 B 2 C 3 מרץ 2002 אלן אזאגורי ©
22
אלגוריתם זמן השימוש Least Recently Used (LRU)
הגדרה אלגוריתם LRU מפנה את הדף שהגישה האחרונה אליו היא המוקדמת ביותר LRU הוא אלגוריתם מחסנית A B C D 1 2 מתנהג כמו OPT A B C D 1 2 מתנהג כמו FIFO מרץ 2002 אלן אזאגורי ©
23
מימוש LRU חותמת זמן (timestamp) לכל דף ניהול מחסנית
בגישה לדף מעדכנים את החותמת מפנים את הדף עם הזמן המוקדם יותר ניהול מחסנית בגישה לדף מעבירים את הדף לראש המחסנית מפנים את הדף בתחתית המחסנית המימושים הנ"ל יקרים ודורשים תמיכה בחומרה מרץ 2002 אלן אזאגורי ©
24
מימוש LRU מקורב שימוש ב-reference bit לכל דף, שמודלק בכל גישה לדף
אלגוריתם ההזדמנות השניה: בהתחלה, הסיבית מאופסת בעת גישה לדף, הסיבית נדלקת מערכת ההפעלה עוברת באופן מחזורי על רשימת הדפים אם הסיבית היא 0 הדף מפונה אם הסיבית היא 1, מאפסים אותה מימוש בעזרת תור דפים מעגלי – אלגוריתם השעון קיימות מספר וריאציות FIFO עם הזדמנות שניה כמו FIFO, אך אם הסיבית דלוקה, מאפסים אותה ומעבירים את הדף לסוף התור מרץ 2002 אלן אזאגורי ©
25
אלגוריתם דפדוף ב-OS/2 מבני נתונים פינוי דפים
מחזיקים את הדפים ב-6 תורים לכל דף סיבית התייחסות R וסיבית שינוי C מחזיקים רשימת מסגרות פנויות פינוי דפים תהליך המתבצע באופן מחזורי אם R=1 הדף מועבר לתור 1 ומאפסים את R אם R=0 והדף בתור i, אזי הדף יועבר לתור i+1 דפים בתור 6 מועמדים לפינוי מרץ 2002 אלן אזאגורי ©
26
קבוצת עבודה Working Set
הגדרה wsi(t, ) היא קבוצת הדפים אליהם ניגש תהליךi באינטרוול הזמן [t-, t] הינו חלון האומדן גודל קבוצת העבודה |WSSi = |wsi(t, ) דוגמא ws(10,5)={1,5,7}; ws(22,5)={3,4} ws(10,10)={1,5,7,6,2}; ws(22,10)={3,4} time 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 page מרץ 2002 אלן אזאגורי ©
27
אלגוריתם קבוצת העבודה הגדרה
תהליך הופך פעיל אם ניתן להקצות זיכרון פיזי לקבוצת העבודה שלו דף שיוצא מקבוצת העבודה מועמד לפינוי אם קבוצת העבודה גדלה ואין דפים פנויים, נבחר תהליך להשהייה מונע סחרור (thrashing) מרץ 2002 אלן אזאגורי ©
28
אלגוריתם דפדוף ב-Windows NT
אפיונים לפי דרישה, אבל מביאים קבוצת דפים מסביב מנהל הזיכרון הוירטואלי עוקב אחרי ה-working set של התהליכים, ומריץ את אלה שהוא יכול לספק את דרישותיהם מדיניות הדפדוף היא FIFO לכל working set בנפרד גודל ה-working set נקבע עם התחלת התהליך, לפי בקשתו ולפי הצפיפות בזיכרון מרץ 2002 אלן אזאגורי ©
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.