Presentation is loading. Please wait.

Presentation is loading. Please wait.

(C) Yohai Devir234267 - January 20061 מבנה מחשבים ספרתיים 234267 זכרון וירטואלי מבוסס על תרגול של מורן גביש.

Similar presentations


Presentation on theme: "(C) Yohai Devir234267 - January 20061 מבנה מחשבים ספרתיים 234267 זכרון וירטואלי מבוסס על תרגול של מורן גביש."— Presentation transcript:

1 (C) Yohai Devir234267 - January 20061 מבנה מחשבים ספרתיים 234267 זכרון וירטואלי מבוסס על תרגול של מורן גביש

2 (C) Yohai Devir234267 - January 20062 הבעייה ישנה כמות נתונה ומוגבלת של זיכרון פיזי. איך נחלק אותו בין התהליכים השונים ? CPU תהליך 2 תהליך 1 תהליך 3 זיכרון פיזי

3 (C) Yohai Devir234267 - January 20063 פתרון ראשון : חלוקה שווה של הזיכרון בין התהליכים השונים. הבעייתיות בפתרון : 1. תהליכים שדורשים הרבה זיכרון מצריכים הגדלת הבלוק ( שמגביל מספר התהליכים האפשרי ) 2. תהליכים שדורשים מעט זיכרון מבזבזים את רוב הבלוק הגדול שהוקצה עבורם ( שברור פנימי ) 3. הקצאת הזיכרון לא ניתנת לשינוי בזמן ריצת התהליכים

4 (C) Yohai Devir234267 - January 20064 פתרון שני הקצאת זיכרון תיעשה בקטעים, על פי בקשות התהליכים. (דוגמה: Windows 3.x) הבעייתיות בפתרון : 1. עקב הקצאה ושחרור קטעים בגדלים שונים, הזיכרון שבין הקטעים מתבזבז ( שברור חיצוני ) 2. ניצול יעיל של זיכרון מצריך הזזת קטעים ושיטות מיעון מסובכות

5 (C) Yohai Devir234267 - January 20065 פתרון שלישי - זיכרון וירטואלי נפריד בין הזכרון שהתכנית רואה – "המרחב הלוגי" (הווירטואלי) לבין המרחב הפיזי (הזיכרון בפועל של המחשב). בפתרון זה בד"כ גם מקצים מקום בזיכרון המשני (הדיסק הקשיח) שישמש כהרחבה לזיכרון הפיזי הקיים במחשב.(swapping)

6 (C) Yohai Devir234267 - January 20066 מושגים מסגרת – הזיכרון הפיזי מחולק ליחידות שוות שנקראות מסגרות. PFN (physical frame number) – מספר מסגרת במרחב הפיזי. דף (page) – הזיכרון הלוגי של כל תהליך מחולק ליחידות שוות בגודל למסגרות. כל יחידה נקראת דף. VPN (virtual page number) – מספר דף במרחב הלוגי. זיכרון פיזי – הזיכרון של המחשב. זיכרון וירטואלי – מרחב זיכרון מדומה אליו ניגש תהליך. swapping – ניצול הזיכרון המשני להרחבת מרחב הזכרון שבשימוש; מבטל את החובה כי כל תהליך ישהה בזיכרון הפיזי במהלך כל הריצה, ובפרט מאפשר להריץ תהליכים גדולים מגודל הזיכרון הפיזי.

7 (C) Yohai Devir234267 - January 20067 יתרונות הזיכרון הווירטואלי 1. אפשרות להגדיל את הזיכרון השמיש מעבר לגודל הזיכרון הפיזי, בעזרת swapping. 2. אין צורך ב -relocation – לכל תוכנית מרחב זיכרון וירטואלי נפרד ( מתחילה מכתובת 0 בזיכרון ). 3. שיתוף זיכרון קל – יכולים להחזיק דף אחד בזיכרון הפיזי שאליו יצביעו רשומות PTE של תהליכים שונים. מקרה פרטי: תמיכה יעילה בריבוי תהליכים (fork). 4. הגנה ( הפרדה ) – בין מרחבי זיכרון של תהליכים שונים.

8 (C) Yohai Devir234267 - January 20068 מבנה  הזיכרון  הווירטואלי CPU 0x00000

9 (C) Yohai Devir234267 - January 20069 מבנה  הזיכרון  הפיזי הזיכרון הפיזי מחולק ל -2 חלקים : 1." החלק העליון " מכיל טבלאות תרגום עבור המרחבים הווירטואליים של כל התהליכים. 2."החלק התחתון" מכיל את המסגרות המכילות דפי הזיכרון של התהליכים. כל מסגרת יכולה להכיל דף כלשהו, ללא סדר מסוים. גודל מסגרת בזיכרון הפיזי = גודל דף בזיכרון הווירטואלי.

10 (C) Yohai Devir234267 - January 200610 מבנה  הזיכרון  הפיזי 2 1 3 2 1 3 2 1 3 זיכרון משני ( דיסק ) 3 2 1 PTE PT זיכרון ראשי PTBR 2

11 (C) Yohai Devir234267 - January 200611 מהלך גישה לכתובת וירטואלית ה -CPU ממען רק לפי הכתובות הווירטואליות של התהליך, ולכן כדי לגשת לנתון בזיכרון הפיזי יש צורך לתרגם את הכתובת הווירטואלית לכתובת פיזית. OffsetVPN VPN (Virtual Page Number) הוא מספר דף וירטואלי במרחב של התהליך. Offset – היסט מתחילת הדף לבית אליו רוצים לגשת. ניגשים למסגרת הנכונה בחלק התחתון עפ"י טבלת התרגום.

12 (C) Yohai Devir234267 - January 200612 מבנה טבלת תרגום...... PTE.... כל כניסה נקראת PTE (Page Table Entry) עבור כל דף וירטואלי במרחב התהליך יש כניסה אחת בטבלת התרגום של אותו תהליך. כלומר, לפי ה-VPN בכתובת הווירטואלית מוצאים את כניסת ה-PTE המתאימה בטבלת התרגום.

13 (C) Yohai Devir234267 - January 200613 מבנה טבלת תרגום PTE במערכת יש כמה תהליכים, אך בכל רגע נתון יש רק תהליך אחד (נקרא "התהליך הפעיל") שרץ כרגע במעבד. לתחילת טבלת התרגום של התהליך הפעיל מצביע ה-PTBR (Page Table Base Register). במקרה של החלפת תהליכים, יש לשנות את ה-PTBR להצביע על תחילת טבלת התרגום של התהליך החדש. PTE PTBR

14 (C) Yohai Devir234267 - January 200614 חישוב כתובת ( פיסית ) הכניסה המתאימה בטבלת התרגום : PTE_Address = [PTBR] + VPN*(Size Of One PTE)

15 (C) Yohai Devir234267 - January 200615 מבנה כניסה בטבלת התרגום VMPFN שדה PFN - זהו מספר המסגרת בה יושב הדף בזיכרון הפיזי.

16 (C) Yohai Devir234267 - January 200616 מבנה כניסה בטבלת התרגום VMPFN סיבית Valid – מציינת האם הדף נמצא בזיכרון הפיזי. (אם לא, ייתכן שהדף נמצא בזכרון המשני, או שהכתובת לא חוקית.) מדיניות הבאת הדפים היא Paging on Demand, כלומר רק כשיש דרישה מביאים את הדף המתאים לזיכרון הפיזי. אם הדף לא קיים בזיכרון הפיזי, בפנייה אליו תקרה פסיקת Page Fault (פנייה לכתובת וירטואלית שאין עבורה מיפוי לכתובת פיזית). הפסיקה מטופלת ע"י מערכת ההפעלה. אם הדף המבוקש נמצא בדיסק, המערכת צריכה לטעון אותו לאחת המסגרות הפנויות בזיכרון הפיזי. אם אין מסגרת פנויה אז יש לפנות את אחד הדפים, לעדכן את הדף שהוצא בזיכרון המשני, ולהכניס את הדף החדש למסגרת. הפינוי נעשה לפי מדיניות LRU.

17 (C) Yohai Devir234267 - January 200617 מבנה כניסה בטבלת התרגום VMPFN סיבית Modified – לפי מדיניות כתיבה Write-Back מעדכנים את תוכן הדף בזיכרון המשני רק כאשר מפנים אותו מהזיכרון הפיזי. הסיבית M מציינת האם הדף עודכן אחרי הטעינה. אם כן, בפינוי הדף נעדכן את תוכנו בדיסק.

18 (C) Yohai Devir234267 - January 200618 תרגום כתובת וירטואלית לפיזית שדה PFN – זהו מספר המסגרת בה יושב הדף בזיכרון הפיזי. שדה offset – אותו שדה ה - offset של הכתובת הוירטואלית. בסך הכל ישנן 2 גישות לזיכרון הפיזי – אחת לטבלת התרגום, ואחת לנתון עצמו. במידה ויש גם זיכרון מטמון, לאחר מציאת הכתובת הפיזית נחלק אותה לשדות tag, set, disp, ונחפש את הנתון במטמון כרגיל, כלומר, נחסוך את הגישה השניה. VPNoffset PFNoffset טבלת תרגום

19 (C) Yohai Devir234267 - January 200619 דוגמא של מכונה עם זיכרון מדומה הנחות : למכונה אין cache טבלת הדפים נמצאת בזיכרון הראשי כתובת בסיס של טבלת הדפים נתונה ברגיסטר PTBR=0x1000 תוכן הכתובת 00201200 הוא 940001C0. כתובת וירטואלית באורך 30 ביטים כתובת פיזית באורך 32 ביטים כניסה בטבלת הדפים מכילה את המידע הבא (PTE): 0 2223 25262627 3031 PFNUnusedModifiedProtectionValid תזכורת : האינדקס בטבלת התרגום הנו מספר הדף המדומה.

20 (C) Yohai Devir234267 - January 200620 דוגמא : תוכנית קוראת משתנה מסוג DW (4 בתים ) הנמצא בכתובת מדומה x100100A00. 1. מה היא הכתובת הפיזית של המשתנה ? 2. כמה גישות לזיכרון דרוש כדי לקרוא את הערך של המשתנה ? 1.מציאת הכתובת הפיזית של המשתנה: א- תרגום הכתובת לבינארי : 100100A0 010000 00010000000010100000

21 (C) Yohai Devir234267 - January 200621 דוגמא : תוכנית קוראת משתנה מסוג DW (4 בתים ) הנמצא בכתובת מדומה x100100A00. 1. מה היא הכתובת הפיזית של המשתנה ? 2. כמה גישות לזיכרון דרוש כדי לקרוא את הערך של המשתנה ? 1.מציאת הכתובת הפיזית של המשתנה: א- תרגום הכתובת לבינארי : 100100A0 010000 00010000000010100000 גודלו של שדה ה -PFN הוא 23 סיביות. גודלה של כתובת פיזית הינו 32 סיביות, והיא מחולקת ל -PFN ו -offest. לכן גודלו של שדה ה -offset הוא #offset=32-23=9 bit offsetVPN

22 (C) Yohai Devir234267 - January 200622 מציאת כתובת ה- PTE: + PTBR0000 0000 0000 0001 0000 000 =PTE010 0000 0001 0010 0000 0000 =0x00 2 0 1 2 0 0 VPN*4010 0000 0000 0010 0000 0000

23 (C) Yohai Devir234267 - January 200623 גישה ראשונה לזיכרון לכתובת של ה PTE. תוכן הכתובת 00201200 הוא 940001C0 (נתון). 2 1 3 2 1 3 2 1 3 זיכרון משני דיסק 2 2 1 PTE 940001C0 PT זיכרון ראשי PTBR 00201200

24 (C) Yohai Devir234267 - January 200624 מציאת ה - PFN: תרגום תוכן ה -PTE, 940001C0 לבינארי 0C100049 0000110000010000 01001001 0000 1100 0001 0000 0000 000 000100101 0 2223 25262627 3031 PFNUnusedModifiedProtectionValid

25 (C) Yohai Devir234267 - January 200625 היות ו - V=1 הדף נמצא בזכרון הפיזי, וניתן לגשת אליו. כתובת הדף בזכרון הפיזי היא : PFN (מתוך ה- PTE) Offset ( מהכתובת הוירטואלית ) 0000 1100 0001 0000 0000 000010100000

26 (C) Yohai Devir234267 - January 200626 גישה שניה לזיכרון לכתובת 000380A0 – להבאת הנתון 2 1 3 2 1 3 2 1 3 זיכרון משני דיסק 2 2 1 PTE 940001C0 PT זיכרון ראשי PTBR 00201200 000380A0

27 (C) Yohai Devir234267 - January 200627 שאלה 1 נתון מחשב עם זיכרון פיזי, זיכרון מדומה ומטמון. מרחב הכתובות המדומה בגודל 2 n. גודל הזיכרון הפיזי 2 m בתים. לכל בית יש כתובת. גודל דף בזיכרון המדומה הוא 2 q בתים. גודל בלוק של המטמון הוא 2 b בתים. המטמון יכול להכיל 2 c בלוקים. שיטת העבודה של המטמון - Direct mapped.

28 (C) Yohai Devir234267 - January 200628 א. תאר כיצד נראית כתובת מדומה במחשב זה. ב. תאר כיצד נראית כתובת פיזית במחשב זה. ג. איזה שיפור במהירות המחשב ניתן להשיג אם מתכנן המחשב ידאג לכך שיתקיים q≥b+c ? פתרון : א + ב, מרחב הכתובת המדומה בגודל 2 n, לכן אורך הכתובת הוירטואלית הוא n ביטים. גודל הזכרון הפיסי הוא 2 m ובכל כתובת יש בית, לכן אורך הכתובת הפיסית הוא m ביטים. גודל דף בזכרון המדומה הוא 2 q בתים, לכן אורך שדה ה - offset גם בכתובת המדומה וגם בכתובת הפיסית ( כי ה - offset המדומה שווה ל -offset הפיסי ) הוא q ביטים.

29 (C) Yohai Devir234267 - January 200629 PFNOffset m-qq כתובת פיזית VPNoffset n-qq כתובת מדומה ( וירטואלית )

30 (C) Yohai Devir234267 - January 200630 גודל בלוק במטמון הוא 2 b בתים, לכן אורך שדה ה - displacement בכתובת פיסית הוא b ביטים. המטמון יכול להכיל 2 c בלוקים ופועל בשיטת Direct mapped. לכן אורך שדה ה -set בכתובת פיסית הוא c ביטים. חלוקת הכתובת לשדות היא : tagsetdisp m-b-ccb

31 (C) Yohai Devir234267 - January 200631 ג. אם מתקיים אי שוויון q≥b+c אז ה -offset ( שדה q) מכיל בתוכו את השדות set ו - disp (b+c): יתכן ביצוע של שני תהליכים במקביל : תרגום כתובת מדומה לפיזית וחיפוש נתון במטמון.  יתקבל מצב בו נידע את מיקומו של הנתון המבוקש במטמון עוד לפני תרגום מלא של כתובתו הוירטואלית לפיזית.  ניתן יהיה להשתמש בנתון שהוצא מהמטמון עוד לפני סיום תרגום כתובתו המדומה ( שיפור מהירות המחשב ). הבעיה שעלולה להיווצר : לא ניתן לדעת אם הנתון שייך לכתובת הפיסית שתתקבל לאחר התרגום של הכתובת המדומה או לכתובת פיסית אחרת עקב קבלת tag- ים שונים.

32 (C) Yohai Devir234267 - January 200632 שאלה 2 1.במחשב מסוים יש זיכרון מדומה של 2 32 כתובות. 2.גודל דף של הזיכרון המדומה 2 13 בתים. 3.מבנה הכניסה בטבלת הדפים: 1 bit 2 bit12 bit MVUnusedPFN

33 (C) Yohai Devir234267 - January 200633 מהו גודל הזיכרון הפיזי ( לכל היותר )? מהו גודל טבלת הדפים ? גודל שדה ה -PFN הוא 12 ביטים ולכן כמות המסגרות בזיכרון הראשי היא לכל היותר 2 12. הגודל של כל דף וירטואלי ( ולכן גם של מסגרת ) הוא 2 13 בתים, לכן מתקבל שגודל הזיכרון הפיסי הוא לכל היותר 2 12 *2 13 =2 25 בתים. גודל מרחב הזיכרון המדומה הוא 2 32 כתובות ( בית בכל כתובת ) וגודל הדף הינו 2 13. ישנם 2 32 /2 13 =2 19 דפים וירטואליים ולכן אותה כמות כניסות בטבלת הדפים. למציאת אורך הכניסה בטבלת הדפים ( אורך כל PTE) נסכום את אורך השדות : 1+1+2+12=16 סיביות, כלומר 2 בתים. גודל טבלת הדפים הוא 2*2 19 =2 20 בתים.

34 (C) Yohai Devir234267 - January 200634 כמה תהליכים יכולים לרוץ בו זמנית על גבי המעבד? מספר התהליכים שיכולים לרוץ בזיכרון בו זמנית הוא לכל היותר כמספר טבלאות התרגום פחות אחד ( כדי שיהיה גם מקום בזיכרון לדפים ). לכל היותר 31 תהליכים יכולים לרוץ במקביל.

35 (C) Yohai Devir234267 - January 200635 בניסיון לחסוך זיכרון פיזי הנדרש ע"י ה-PT הוחלט להחזיק טבלה בה יש כניסה לכל מסגרת פיזית. אילו שדות צריכה להכיל טבלה כזו? נחזיק טבלת תרגום הפוכה, כלומר לכל מסגרת בזיכרון הפיזי נחזיק את השדות: VPN, Valid, Modified. כמו כן נחזיק מזהה תהליך (PID) כי דף מספר 2 (למשל) יכול להיות שייך לתהליך א' או לתהליך ב'.

36 (C) Yohai Devir234267 - January 200636 בהנחה שגודל כניסה חייב להיות חזקה של 2, כמה דפים פיזיים נצטרך כדי להחזיק את כל הטבלה ? ( של הסעיף הקודם ) ישנם 2 19 דפים ווירטואליים לכל תהליך, כלומר דרושים 19 ביטים לשדה VPN, ביט אחד ל - Valid, ביט אחד ל - Modified ובכדי להשלים לחזקה שלמה של 2 נחזיק 11 ביטים עבור מזהה התהליך. גודל הכניסה בטבלה החדשה יהיה 32 ביטים = 4 בתים. 1 bit 19 bit11 bit VMVPNProcess id מספר הכניסות הוא כמספר המסגרות הפיזיות. יש 2 12 מסגרות פיזיות, גודל כל כניסה 4 בתים ולכן גודל הטבלה החדשה 4*2 12 =2 14 בתים.

37 (C) Yohai Devir234267 - January 200637 מה היתרונות ואילו בעיות צפויות עם מימוש זה ? היתרון בטבלה החדשה הוא חסכון במקום. גודל כל דף וירטואלי הוא 2 13 בתים, גודל הטבלה החדשה הוא 2 14 ולכן הטבלה תתפוס רק 2 14 /2 13 =2 מסגרות בזיכרון. הבעיה הצפויה בשימוש בטבלה החדשה היא חיפוש של PFN בהינתן VPN. אם בטבלה הישנה VPN שימש כאינדקס כניסה, בטבלה החדשה נצטרך לסרוק את כל הכניסות, לבדוק את מזהה התהליך ואת ה -VPN הנתון ואז אינדקס הכניסה שמצאנו יהיה ה -PFN הדרוש. כלומר חסכנו מקום ופגענו ביעילות.

38 (C) Yohai Devir234267 - January 200638 backups

39 (C) Yohai Devir234267 - January 200639 רשימת ראשי תיבות PFN (Physical Frame Number) - אחת המסגרות בזיכרון הפיזי, שיכולה להכיל דף וירטואלי. VPN (Virtual Page Number ) - מספר הדף הוירטואלי של תהליך מסוים. Offset - כמה צריך לקפוץ מתחילת הדף עד המקום המסוים אליו רוצים לגשת בדף. PT (page table) – טבלה שמקשרת בין מספר דף וירטואלי (VPN) לבין הסטטוס והמיקום שלו. PTE (page table entry) – שורה ב - PT PTBR (Page Table Base Register) – רגיסטר שמצביע על טבלת הדפים של התהליך שרץ כרגע

40 (C) Yohai Devir234267 - January 200640 זיכרון וירטואלי עם מטמון


Download ppt "(C) Yohai Devir234267 - January 20061 מבנה מחשבים ספרתיים 234267 זכרון וירטואלי מבוסס על תרגול של מורן גביש."

Similar presentations


Ads by Google