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

Slides:



Advertisements
Similar presentations
Processes and threads. תהליכים ותתי תהליכים תהליכים –כל תוכנית שרצה היא תהליך (process) –ניתן להתפצל מתהליך אחד למספר תהליכים, בעזרת הפקודה fork(). הרבה.
Advertisements

Computer Structure 2012 – VM 1 Computer Structure X86 Virtual Memory and TLB Franck Sala Updated by tomer gurevich Slides from Lihu and Adi’s Lecture.
מבוא למדעי המחשב לתעשייה וניהול
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
תרגילי חזרה. General Things to Remember Be careful to identify if we’re talking about gains or costs (because the search cost is always negative) Check.
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
(C) Yohai Devir November מבנה מחשבים ספרתיים תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק מהשרטוטים עפ " י ליהוא רפפורט,
Operating Systems, 112 Practical Session 10, Memory Management continues 1.
מכונת מצבים תרגול מס' 4 Moshe Malka.
1 חישוב של אופרטורים רלציוניים Evaluation of Relational Operators.
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
Inverse kinematics (Craig ch.4) ב"ה. Pieper’s solution נתבונן ברובוט עם 6 מפרקי סיבוב כאשר שלושת הצירים של המפרקים האחרונים נחתכים. נקודת החיתוך נתונה.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
מערכות הפעלה תרגול 10 – זיכרון וירטואלי ב- Linux.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. חלוקת זכרון קבועה מול דפדוף.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
מערכות הפעלה תרגול 12 – ניהול זיכרון ב-Linux : המשך.
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
תרגול 10 – זיכרון וירטואלי ב-Linux
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
1 חישוב ואופטימיזציה של שאילתות חלק 2 Query Evaluation and Optimization Part 2.
Multicycle MIPS תרגול כיתה מס' 13.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. ניהול טבלת הדפים. מדיניות החלפת דפים.
מערכות הפעלה תרגול 12 – ניהול זיכרון ב-Linux : המשך.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
מערכות הפעלה תרגול 11 – ניהול זיכרון ב-Linux: המשך.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. חלוקת זכרון קבועה מול דפדוף.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 סיכום הקורס.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תוכנה 1 - תרגול שיעור 10 Pointers (2) שולי לב יהודי
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
A. Frank File Organization Hardware Size Parameters.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. ניהול טבלת הדפים. מדיניות החלפת דפים.
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
(C) Yohai Devir January מבנה מחשבים ספרתיים זכרון וירטואלי מבוסס על תרגול של מורן גביש.
- אמיר רובינשטיין מיונים - Sorting משפט : חסם תחתון על מיון ( המבוסס על השוואות בלבד ) של n מפתחות הינו Ω(nlogn) במקרה הגרוע ובממוצע. ניתן לפעמים.
Computer Structure 2012 – VM 1 Computer Structure X86 Virtual Memory and TLB Franck Sala Updated by tomer gurevich Slides from Lihu and Adi’s Lecture.
שיאון שחוריMilOSS-il מוטיבציה  python זה קל ו C זה מהיר. למה לא לשלב?  יש כבר קוד קיים ב C. אנחנו רוצים להשתמש בו, ולבסס מעליו קוד חדש ב python.
תכנות מכוון עצמים ושפת ++C וויסאם חלילי. TODAY TOPICS: 1. Function Overloading & Default Parameters 2. Arguments By Reference 3. Multiple #include’s 4.
Operating Systems Practical Session 10, Memory Management continues.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
Computer Structure – VM 1 Computer Structure X86 Virtual Memory and TLB Franck Sala Updated by tomer gurevich Slides from Lihu and Adi’s Lecture.
עקרונות תכנות מונחה עצמים תרגול 11: OOP in C++. Outline  Where do the objects live ?  Inheritance  Slicing  Overriding vs Shadowing.
Tirgul 12 Trees 1.
תרגול מס' 8: x86 Virtual Memory and TLB
Formal Specifications for Complex Systems (236368) Tutorial #1
מערכות הפעלה ערן טרומר סמסטר א' תשע"ב
מבוא למדעי המחשב סיבוכיות.
תקשורת ומחשוב תרגול 1 IP, Classes and Masks.
SQL בסיסי – הגדרה אינדוקטיבית
תרגול מס' 3: Data Hazards מבוסס על תרגול של מורן גביש
OS Virtualization.
תרגול 12 – ניהול זיכרון ב-Linux: המשך
תזכורת על מה דיברנו שיעור שעבר? בנינו אתר אינטרנט עם כותרות
טבלאות מדומות (Views).
Presentation transcript:

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

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

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

(C) Yohai Devir January 20064

(C) Yohai Devir January 20065

(C) Yohai Devir January 20066

(C) Yohai Devir January נתון

(C) Yohai Devir January כניסת PTE מתאימה לדף של P1

(C) Yohai Devir January כניסת PTE מתאימה לדף של S0

(C) Yohai Devir January עותק של הדף המבוקש ממרחב S0

(C) Yohai Devir January מצביע

(C) Yohai Devir January עותק של הדף המבוקש ממרחב P1

(C) Yohai Devir January הנתון פיזית (כעת ניתן לקרוא אותו)

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

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

(C) Yohai Devir January איך נראית כתובת וירטואלית ב 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 שמשותף לכל התהליכים.

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

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

(C) Yohai Devir January מבנה כניסה בטבלת תרגום (PTE): PFN(Not used)ModifiedProtection CodeValid bit

(C) Yohai Devir January תהליך מציאת נתון ב -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.

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

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

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

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

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

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

(C) Yohai Devir January יש להפוך את הכתובת לבינארי: FPN (21 bits) SPT יושבת בזיכרון הפיזי ולכן ניתן לגשת לכניסת התרגום וזוהי הגישה הראשונה לזיכרון הפיזי. בכניסת תרגום זו נמצאת הכתובת הפיזית של הדף השייך לטבלת התרגום של P1: תוכן כניסת התרגום ב- SPT: 0x940001C0. יש לשרשר את ה -offset השני שיש בידנו ( מתוך הכתובת הוירטואלית השניה – 0A0), וכך נקבל את הכתובת הפיזית של הכניסה בטבלת התרגום של P1: גישה לכתובת הפיזית של הכניסה בטבלת התרגום של P1 היא הגישה השניה לזיכרון הפיזי. בכניסת תרגום זו נמצאת הכתובת הפיזית של הדף הפיזי בו נמצא הנתון המבוקש. נניח שנתון שתוכן כניסת התרגום הנ"ל ב- P1PT: 0x94000B2F

(C) Yohai Devir January בתרגום לבינארי: FPN (21 bits) יש לשרשר את ה -offset הראשון שיש בידנו ( מתוך הכתובת הוירטואלית של ה נתון – 1F4), וכך נקבל את הכתובת הפיזית של הנתון המבוקש : גישה לכתובת הפיזית של הנתון המבוקש היא הגישה השלישית לזיכרון הפיזי.