Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

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

2 (C) Yohai Devir234267 - January 20062 במערכת עם הרבה תהליכים עלולות טבלאות התרגום בזיכרון הפיזי למלא את כל הזיכרון, כך שלא ישאר מקום נוסף עבור מסגרות ו / או עבור טבלאות התרגום עצמן. הבעיה

3 (C) Yohai Devir234267 - January 20063 הפתרון 2 1 3 2 1 3 2 1 3 זיכרון משני דיסק דף מתוך PT SPT PT זיכרון פיזי SBR CPU P0 PT P1 PT מרחבים מדומים של תהליכים מרחב מדומה של system P0 BR P1 BR 3 2

4 (C) Yohai Devir234267 - January 20064

5 (C) Yohai Devir234267 - January 20065

6 (C) Yohai Devir234267 - January 20066

7 (C) Yohai Devir234267 - January 20067 נתון

8 (C) Yohai Devir234267 - January 20068 כניסת PTE מתאימה לדף של P1

9 (C) Yohai Devir234267 - January 20069 כניסת PTE מתאימה לדף של S0

10 (C) Yohai Devir234267 - January 200610 עותק של הדף המבוקש ממרחב S0

11 (C) Yohai Devir234267 - January 200611 מצביע

12 (C) Yohai Devir234267 - January 200612 עותק של הדף המבוקש ממרחב P1

13 (C) Yohai Devir234267 - January 200613 הנתון פיזית (כעת ניתן לקרוא אותו)

14 (C) Yohai Devir234267 - January 200614 נחלק את הזיכרון הפיזי לשניים, חלק גדול למסגרות וחלק קטן לטבלת תרגום אחת ויחידה, SPT = System Page Table, הממפה את המרחב הוירטואלי של ה -system. ה SBR = System Base Register מצביע על תחילת טבלת ה -SPT. היתרון בשמירת טבלאות התרגום בזיכרון הוירטואלי הוא שהן נשמרות בזיכרון המשני, וכך נותר מקום בזיכרון הפיזי למספר רב יותר של מסגרות.

15 (C) Yohai Devir234267 - January 200615 נחלק את הזיכרון המשני לשניים : מרחב מדומה של system, ומרחבים מדומים של התהליכים. טבלאות התרגום עצמן מחולקות לדפים, אותם ניתן להביא למסגרות של הזיכרון הפיזי. בצורת מימוש זו, לצורך חיפוש נתון ישנן 3 גישות לזיכרון הפיזי : 1. ל -SPT. 2. לדף מתוך טבלת התרגום ( דף מתוך המרחב הוירטואלי של ה - system). 3. לדף של הנתון עצמו ( דף מתוך מרחב וירטואלי של התהליך ). ייתכנו שני Page Faults בגישה לנתון יחיד : כאשר הדף של טבלת התרגום לא נמצא בזיכרון הפיזי, וכאשר הדף של התהליך עצמו איננו בזיכרון הפיזי.

16 (C) Yohai Devir234267 - January 200616 איך נראית כתובת וירטואלית ב VAX? גודל כתובת וירטואלית : 32 סיביות גודל מרחב כתובות וירטואלי 2 32 בתים = 4GB. גודל עמוד / מסגרת : 512 בתים. Address space 0 – Process / 1 – System 0/1 Address space Virtual Page Number (VPN) Offset Bit 31Bit 30Bits 9-29Bits 0-8 סיבית ה -MSB של הכתובת המציינת האם ניגשים למרחב הוירטואלי של ה -system (S0) או למרחב וירטואלי של תהליך. MSB=0 - הכתובת הוירטואלית הנה במרחב וירטואלי של התהליך. MSB=1 - הכתובת הוירטואלית במרחב הוירטואלי של ה -system שמשותף לכל התהליכים.

17 (C) Yohai Devir234267 - January 200617 לכל תהליך יש שני מרחבים וירטואליים הנקראים P0 ו -P1 וכן טבלאות תרגום P0PT ו -P1PT בהתאמה, אחד עבור זיכרון סטטי ואחד עבור זיכרון דינמי. הסיבית Address space מציינת לאיזה מרחב וירטואלי מתייחסים P0 או P1. MSB+2MSB: 00 - המרחב הוירטואלי P0 של התהליך. 01 - המרחב הוירטואלי P1 של התהליך. 10 - המרחב הוירטואלי S0 של ה -system, משותף לכל התהליכים. 11 - לא קיים. ל -system, בניגוד לתהליך אין שני מרחבים וירטואליים, אלא S0 בלבד. תרגום הכתובות הוירטואליות יעשה באמצעות טבלאות תרגום ( הנמצאות במרחב המדומה של ה -system)

18 (C) Yohai Devir234267 - January 200618 ייחודו של התהליך הפעיל : מערכת ההפעלה " תדאג " ש -P0BR ו -P0BR יצביעו אל תחילת טבלאות התרגום שלו ( בכל רגיסטר מאוחסנת כתובת וירטואלית במרחב ה - system - סיביות ה MSB הן "10" - למה ?). עדכון הכתובות בשני רגיסטרים אלה מתבצע context switch. מבנה כתובת פיזית: גודל כתובת פיזית: לכל היותר 30 סיביות. גודל מקסימאלי של זיכרון פיזי : 2 30 = 1GB. Physical Frame Number (PFN)offset 21 bit9 bit

19 (C) Yohai Devir234267 - January 200619 מבנה כניסה בטבלת תרגום (PTE): PFN(Not used)ModifiedProtection CodeValid bit 215141 0 20 21 25 26 27 30 31

20 (C) Yohai Devir234267 - January 200620 תהליך מציאת נתון ב -VAX: תחילה נבצע פעולות חישוב על מנת למצוא את כתובת הכניסה המתאימה בטבלת ה -SPT: נחלק את הכתובת הוירטואלית של הנתון המבוקש לשדות VPN ו - Offset. נמצא את הכניסה המתאימה בטבלת התרגום ( הוירטואלית ) ע " י החישוב PTE_Address = PxBR + VPN*(Size of One PTE). כתובת ה -PTE במרחב ה -system היא כתובת וירטואלית, ולכן המעבד לא יכול לגשת אליה. נפרק אותה לשדות VPN - Offset ונחשב את כתובת ה -PTE בטבלת ה -SPT באופן דומה לחישוב כניסת ה -PTE של טבלת התרגום : כניסת ה -PTE = ( גודל כניסה ב -SPT) * VPN + SBR. ההבדל הוא בכך ש -SPT יושבת בזיכרון הפיסי ולכן כעת ניתן לגשת ל - PTE.

21 (C) Yohai Devir234267 - January 200621 גישה 1: ניגש לטבלת ה -SPT בזיכרון הפיזי לכניסת ה -PTE שמצאנו. גישה 2: מתוך ה -PTE שקיבלנו בגישת הזיכרון הראשונה נחלץ את שדה ה -PFN ( לאחר שוידאנו Valid) ובעזרתו נמצא את הכתובת הפיסית של הדף מתוך טבלת התרגום של התהליך. ע " י שרשור ה -offset ל -PFN נקבל כתובת פיסית לגישת זיכרון שניה - גישה ל -PTE מתוך טבלת התרגום PxPT. גישה 3: הגישה האחרונה היא לנתון עצמו. מתוך ה -PTE ( שקיבלנו בגישת זיכרון 2) מחלצים את ה -PTE ומשרשרים לו את ה -offset מהכתובת הוירטואלית הראשונית.

22 (C) Yohai Devir234267 - January 200622 מה קורה אם הדף של התהליך לא בזיכרון ? SPT M=1 PFN V=1 PFN דף מתוך PT דף ממרחב התהליך אם היה Page Fault בגישה לדף של התהליך עצמו, מערכת ההפעלה צריכה לדאוג להביא את הדף, תוך עדכון סיבית Valid=1 בדף של טבלת התרגום וסיבית Modified=1 ב - SPT ( למה ?) רק כאשר נפנה את הדף של טבלת התרגום חזרה לזיכרון המשני ( למרחב המדומה של system ) אז נעתיק אותו מכיוון שהתבצע בו עידכון.

23 (C) Yohai Devir234267 - January 200623 דוגמא מספרית - גישה לכתובת המדומה - VAX-11/780 נתונה הכתובת הוירטואלית הבאה (בהקסדצימלי): 0x7F0051F4. יש להפוך את הכתובת לבינארי: 0100 1111 0001 0101 0000 0000 1111 0111 Offset (9 bits) = 0x1F4 VPN (21 bits) הביט השמאלי ביותר (ה-msb) הוא 0  הכתובת הוירטואלית נמצאת במרחב התהליכים. הביט השני משמאל הוא 1  הכתובת הוירטואליות נמצאת במרחב הוירטואלי P1 של התהליך. ה-VPN הוא מספר הדף המבוקש במרחב P1, ולמעשה זהו מספר הכניסה בטבלת התרגום שבמרחב ה-system.

24 (C) Yohai Devir234267 - January 200624 VPN*4 = 111 1110 0000 0000 1010 0000 = 0x7E00A0 + P1 Base Register + 0x8F830000 (Given on register P1BR) ============= Virtual ad. of P1PTE 0x900100A0 כדי למצוא את הכתובת של כניסת התרגום יש לבצע את החישוב : PTE_Address = PxPR + VPN*(Size of One PTE) באופן הבא : כך קיבלנו את הכתובת הוירטואלית של כניסת התרגום שבמרחב ה-system: 0x900100A0

25 (C) Yohai Devir234267 - January 200625 יש להפוך את הכתובת לבינארי: 0000 1010 0000 0000 0001 0000 0000 1001 Offset (9 bits) = 0x0A0 VPN (21 bits) הביט השמאלי ביותר (ה-msb) הוא 1  הכתובת הוירטואלית נמצאת במרחב ה- system. ה-VPN הוא מספר הדף המבוקש במרחב S0, ולמעשה זהו מספר הכניסה בטבלת ה-SPT שבזכרון הפיזי. כך קיבלנו את הכתובת הוירטואלית של כניסת התרגום שבמרחב ה-system: 0x900100A0

26 (C) Yohai Devir234267 - January 200626 VPN*4 = 010 0000 0000 0010 0000 0000 = 0x200200 + SPT Base Register + 0x00001000 (Given on register SBR) ============= Physical ad. of S0 PTE 0x00201200 (contains: 0x940001C0) כדי למצוא את הכתובת של כניסת התרגום יש לבצע את החישוב : PTE_Address =SBR + VPN*(Size of each PTE in SPT) באופן הבא :

27 (C) Yohai Devir234267 - January 200627 יש להפוך את הכתובת לבינארי: 0000 1100 0001 0000 0000 0000 0100 1001 FPN (21 bits) SPT יושבת בזיכרון הפיזי ולכן ניתן לגשת לכניסת התרגום וזוהי הגישה הראשונה לזיכרון הפיזי. בכניסת תרגום זו נמצאת הכתובת הפיזית של הדף השייך לטבלת התרגום של P1: תוכן כניסת התרגום ב- SPT: 0x940001C0. יש לשרשר את ה -offset השני שיש בידנו ( מתוך הכתובת הוירטואלית השניה – 0A0), וכך נקבל את הכתובת הפיזית של הכניסה בטבלת התרגום של P1: 0000 1010 0000 1000 0011 0000 0000 00 גישה לכתובת הפיזית של הכניסה בטבלת התרגום של P1 היא הגישה השניה לזיכרון הפיזי. בכניסת תרגום זו נמצאת הכתובת הפיזית של הדף הפיזי בו נמצא הנתון המבוקש. נניח שנתון שתוכן כניסת התרגום הנ"ל ב- P1PT: 0x94000B2F

28 (C) Yohai Devir234267 - January 200628 בתרגום לבינארי: 1111 0010 1011 0000 0000 0000 0100 1001 FPN (21 bits) יש לשרשר את ה -offset הראשון שיש בידנו ( מתוך הכתובת הוירטואלית של ה נתון – 1F4), וכך נקבל את הכתובת הפיזית של הנתון המבוקש : 0100 1111 1111 0101 0110 0001 0000 00 גישה לכתובת הפיזית של הנתון המבוקש היא הגישה השלישית לזיכרון הפיזי.


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

Similar presentations


Ads by Google