1 / 40

מבנה מחשבים ספרתיים 234267

מבנה מחשבים ספרתיים 234267. זכרון וירטואלי מבוסס על תרגול של מורן גביש. זיכרון פיזי. תהליך 1. CPU. תהליך 2. תהליך 3. הבעייה. ישנה כמות נתונה ומוגבלת של זיכרון פיזי. איך נחלק אותו בין התהליכים השונים?. פתרון ראשון:. חלוקה שווה של הזיכרון בין התהליכים השונים. הבעייתיות בפתרון:

arin
Download Presentation

מבנה מחשבים ספרתיים 234267

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. מבנה מחשבים ספרתיים234267 זכרון וירטואלי מבוסס על תרגול של מורן גביש 234267 - January 2006

  2. זיכרון פיזי תהליך 1 CPU תהליך 2 תהליך 3 הבעייה • ישנה כמות נתונה ומוגבלת של זיכרון פיזי. איך נחלק אותו בין התהליכים השונים? 234267 - January 2006

  3. פתרון ראשון: • חלוקה שווה של הזיכרון בין התהליכים השונים. • הבעייתיותבפתרון: • תהליכים שדורשים הרבה זיכרון מצריכים הגדלת הבלוק (שמגביל מספר התהליכים האפשרי) • תהליכיםשדורשיםמעטזיכרוןמבזבזים את רוב הבלוק הגדול שהוקצה עבורם (שברור פנימי) • הקצאתהזיכרוןלאניתנתלשינויבזמןריצת התהליכים 234267 - January 2006

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

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

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

  7. יתרונות הזיכרון הווירטואלי • אפשרות להגדיל את הזיכרון השמיש מעבר לגודל הזיכרון הפיזי, בעזרת swapping. • אין צורך ב-relocation – לכל תוכנית מרחב זיכרון וירטואלי נפרד (מתחילה מכתובת 0 בזיכרון). • שיתוף זיכרון קל – יכולים להחזיק דף אחד בזיכרון הפיזי שאליו יצביעו רשומות PTE של תהליכים שונים. • מקרה פרטי: תמיכה יעילה בריבוי תהליכים (fork). • הגנה (הפרדה) – בין מרחבי זיכרון של תהליכים שונים. 234267 - January 2006

  8. מבנה הזיכרון הווירטואלי 0x00000 CPU 234267 - January 2006

  9. מבנה הזיכרון הפיזי • הזיכרוןהפיזימחולק ל-2 חלקים: • "החלקהעליון" מכילטבלאותתרגוםעבורהמרחביםהווירטואלייםשל כלהתהליכים. • "החלקהתחתון" מכיל אתהמסגרותהמכילותדפי הזיכרוןשל התהליכים. • כלמסגרתיכולהלהכילדףכלשהו, ללאסדרמסוים. • גודלמסגרתבזיכרוןהפיזי = גודלדףבזיכרוןהווירטואלי. 234267 - January 2006

  10. PTE PTE PTE מבנה הזיכרון הפיזי זיכרון משני (דיסק) זיכרון ראשי PT 1 2 PT PTBR 3 1 1 2 1 2 2 3 3 2 3 234267 - January 2006

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

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

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

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

  15. מבנה כניסה בטבלת התרגום שדה PFN - זהומספרהמסגרתבהיושבהדףבזיכרוןהפיזי. 234267 - January 2006

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

  17. מבנה כניסה בטבלת התרגום סיבית Modified – לפי מדיניות כתיבה Write-Back מעדכנים את תוכן הדף בזיכרון המשני רק כאשר מפנים אותו מהזיכרון הפיזי. הסיבית M מציינת האם הדף עודכן אחרי הטעינה. אם כן, בפינוי הדף נעדכן את תוכנו בדיסק. 234267 - January 2006

  18. תרגום כתובת וירטואלית לפיזית • שדה PFN – זהו מספרהמסגרתבהיושבהדףבזיכרוןהפיזי. • שדה offset – אותו שדהה- offset שלהכתובתהוירטואלית. • בסךהכלישנן 2גישותלזיכרוןהפיזי – אחת לטבלתהתרגום, ואחת לנתוןעצמו. • במידהוישגםזיכרוןמטמון, לאחרמציאתהכתובתהפיזיתנחלקאותהלשדות • tag, set, disp, ונחפשאתהנתוןבמטמוןכרגיל, כלומר, נחסוךאתהגישההשניה. 234267 - January 2006

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

  20. דוגמא: • תוכנית קוראת משתנה מסוג DW (4 בתים)הנמצא בכתובת מדומה x100100A00. • 1. מה היא הכתובת הפיזית של המשתנה ? • 2. כמה גישות לזיכרון דרוש כדי לקרוא את הערך של המשתנה ? • מציאתהכתובתהפיזיתשלהמשתנה: • תרגום הכתובת לבינארי: 234267 - January 2006

  21. דוגמא: • תוכנית קוראת משתנה מסוג DW (4 בתים)הנמצא בכתובת מדומה x100100A00. • 1. מה היא הכתובת הפיזית של המשתנה ? • 2. כמה גישות לזיכרון דרוש כדי לקרוא את הערך של המשתנה ? • מציאתהכתובתהפיזיתשלהמשתנה: • תרגום הכתובת לבינארי: VPN offset גודלושלשדהה-PFN הוא 23סיביות. גודלה של כתובת פיזית הינו 32 סיביות, והיא מחולקת ל-PFN ו-offest. לכן גודלו של שדה ה-offset הוא #offset=32-23=9 bit 234267 - January 2006

  22. מציאת כתובת ה- PTE: 234267 - January 2006

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

  24. מציאת ה- PFN:תרגום תוכן ה-PTE, 940001C0 לבינארי 234267 - January 2006

  25. היות ו- V=1 הדף נמצא בזכרון הפיזי, וניתן לגשת אליו.כתובת הדף בזכרון הפיזי היא: 234267 - January 2006

  26. PT PT PTE PTE 940001C0 1 2 2 גישה שניה לזיכרון לכתובת 000380A0 – להבאת הנתון זיכרון ראשי זיכרון משני דיסק 1 2 PTBR 3 1 00201200 1 2 2 3 3 000380A0 234267 - January 2006

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

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

  29. 234267 - January 2006

  30. גודל בלוק במטמון הוא 2b בתים, לכן אורך שדה ה-displacement בכתובת פיסית הוא b ביטים. המטמון יכול להכיל 2c בלוקים ופועל בשיטת Direct mapped. לכן אורך שדה ה-set בכתובת פיסית הוא c ביטים. • חלוקת הכתובת לשדות היא: 234267 - January 2006

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

  32. שאלה 2 • במחשב מסוים יש זיכרון מדומה של 232 כתובות. • גודל דף של הזיכרון המדומה 213 בתים. • מבנה הכניסה בטבלת הדפים: 234267 - January 2006

  33. מהוגודלהזיכרוןהפיזי (לכלהיותר)?מהוגודלטבלתהדפים? • גודל שדה ה-PFN הוא 12 ביטים ולכן כמות המסגרות בזיכרון הראשי היא לכל היותר 212. הגודל של כל דף וירטואלי (ולכן גם של מסגרת) הוא 213 בתים, לכן מתקבל שגודל הזיכרון הפיסי הוא לכל היותר 212*213=225 בתים. • גודל מרחב הזיכרון המדומה הוא 232 כתובות (בית בכל כתובת) וגודל הדף הינו 213. ישנם 232/213=219 דפים וירטואליים ולכן אותה כמות כניסות בטבלת הדפים. • למציאת אורך הכניסה בטבלת הדפים (אורך כל PTE) נסכום את אורך השדות: 1+1+2+12=16 סיביות, כלומר 2 בתים. גודל טבלת הדפים הוא 2*219=220 בתים. 234267 - January 2006

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

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

  36. בהנחה שגודל כניסה חייב להיות חזקה של 2, כמה דפים פיזיים נצטרך כדי להחזיק את כל הטבלה ? (של הסעיף הקודם) • ישנם 219 דפים ווירטואליים לכל תהליך, כלומר דרושים 19 ביטים לשדה VPN, ביט אחד ל- Valid, ביט אחד ל- Modified ובכדי להשלים לחזקה שלמה של 2 נחזיק 11 ביטים עבור מזהה התהליך. גודל הכניסה בטבלה החדשה יהיה 32 ביטים = 4 בתים. מספר הכניסות הוא כמספר המסגרות הפיזיות.יש 212 מסגרות פיזיות, גודל כל כניסה 4 בתים ולכן גודל הטבלה החדשה 4*212=214בתים. 234267 - January 2006

  37. מה היתרונות ואילו בעיות צפויות עם מימוש זה? היתרון בטבלה החדשה הוא חסכון במקום. גודל כל דף וירטואלי הוא 213 בתים, גודל הטבלה החדשה הוא 214 ולכן הטבלה תתפוס רק 214/213=2 מסגרות בזיכרון. הבעיה הצפויה בשימוש בטבלה החדשה היא חיפוש של PFN בהינתן VPN. אם בטבלה הישנה VPN שימש כאינדקס כניסה, בטבלה החדשה נצטרך לסרוק את כל הכניסות, לבדוק את מזהה התהליך ואת ה-VPN הנתון ואז אינדקס הכניסה שמצאנו יהיה ה-PFN הדרוש. כלומר חסכנו מקום ופגענו ביעילות. 234267 - January 2006

  38. backups 234267 - January 2006

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

  40. זיכרון וירטואלי עם מטמון 234267 - January 2006

More Related