ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. ניהול טבלת הדפים. מדיניות החלפת דפים.

Slides:



Advertisements
Similar presentations
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.
Advertisements

מבוא למדעי המחשב לתעשייה וניהול
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות.
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 מערכות קבצים מבוזרות  מבוא  מבנה כללי  דוגמה : Network file system  דוגמה : Google file system.
Operating Systems, 112 Practical Session 10, Memory Management continues 1.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 מערכת הקבצים  מבוא : מטרות מערכת קבצים  מנשק המשתמש : פעולות על קבצים, ארגון קבצים, הגנה  תכונות של דיסקים.
תמחיר תהליך. מערכת תמחיר תהליך מערכת זו נועדה לספק מידע, כמו מערכת תמחיר הזמנה, על עלות המוצרים שיוצרו בתקופה ועל עלות המוצרים שבתהליך הייצור בסוף התקופה.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
A. Frank File Organization קובץ ישיר מתקדם Advanced Direct File.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 פסיקות  סוגי פסיקות  איך מערכת ההפעלה מטפלת בפסיקות  דוגמא : קלט בעזרת פסיקות.
מערכות הפעלה תרגול 10 – זיכרון וירטואלי ב- Linux.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
מה החומר למבחן ? כל החומר שנלמד בהרצאות ובתרגולים. לגבי backtracking: לא תידרשו לממש אלגוריתם, אך כן להבין או להשלים מימוש נתון. אחת משאלות המבחן מבוססת.
הגנה במערכות מתוכנתות תרגול 1 – המחשב האישי הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. חלוקת זכרון קבועה מול דפדוף.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 מערכות הפעלה קורס מס '
מערכות הפעלה ( אביב 2004) חגית עטיה © 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,
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות ושימושים.
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 מימוש מערכת הקבצים  תכונות של דיסקים.  מימושים בסיסיים.  קצת על מימושים מתקדמים.  אמינות מערכת הקבצים.
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 וירטואליזציה.
A. Frank File Organization Indexed-Sequential File Introduction Thanks to Tamar Barnes.
מרץ 2002אלן אזאגורי ©1 זיכרון משותף מבוזר Distributed Shared Memory.
מערכות הפעלה תרגול 12 – ניהול זיכרון ב-Linux : המשך.
(C) Yohai Devir January מבנה מחשבים ספרתיים תרגול מס ' 12: זיכרון וירטואלי ב - VAX מבוסס על תרגולים מאת מורן גביש ואורן קצנגולד.
תרגול 10 – זיכרון וירטואלי ב-Linux
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 וירטואליזציה.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. ניהול טבלת הדפים. מדיניות החלפת דפים.
תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות.
מערכות הפעלה תרגול 12 – ניהול זיכרון ב-Linux : המשך.
מערכות הפעלה תרגול 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 רגיל - דינאמי) * רוצים זמן קבוע.
עקרון ההכלה וההדחה.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 סיכום הקורס.
מערכת הקבצים : יסודות  מבוא : מטרות מערכת קבצים  מנשק המשתמש : פעולות על קבצים, ארגון קבצים, הגנה  תכונות של דיסקים.  מימושים : בסיסיים וקצת על מימושים.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מימוש מערכת הקבצים  תכונות של דיסקים.  מימושים בסיסיים.  קצת על מימושים מתקדמים.  אמינות מערכת הקבצים.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #3 Internet Control Message Protocol (ICMP)
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 9: Virtual Memory.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
מערכות הפעלה ( אביב 2007) חגית עטיה © 1 מימוש מערכת הקבצים  מימושים בסיסיים.  קצת על מימושים מתקדמים.  אמינות מערכת הקבצים.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 7 ISP דוגמא נוספת.
(C) Yohai Devir January מבנה מחשבים ספרתיים זכרון וירטואלי מבוסס על תרגול של מורן גביש.
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 מערכת הקבצים  מבוא : מטרות מערכת קבצים  מנשק המשתמש : פעולות על קבצים, ארגון קבצים, הגנה  תכונות של דיסקים.
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.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
Operating Systems Practical Session 10, Memory Management continues.
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.
תרגול מס' 8: x86 Virtual Memory and TLB
מערכות הפעלה ערן טרומר סמסטר א' תשע"ב
מבוא למדעי המחשב סיבוכיות.
תקשורת ומחשוב תרגול 1 IP, Classes and Masks.
תרגול 12 – ניהול זיכרון ב-Linux: המשך
תהליכים-דייאט: חוטים מוטיבציה חוטי משתמש וחוטי מערכת
שפת סף וארכיטקטורה של מעבד 8086
פרק תשיעי – מדיניות ניהול זיכרון וירטואלי
Computer Architecture and Assembly Language
Presentation transcript:

ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. ניהול טבלת הדפים. מדיניות החלפת דפים.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 2 ניהול הזיכרון  מערכת ההפעלה צריכה לנהל את השימוש בזיכרון : חלק מהזיכרון מוקצה למערכת ההפעלה עצמה. שאר הזיכרון מתחלק בין התהליכים הרצים כרגע. כאשר תהליך מתחיל צריך להקצות לו זיכרון. כאשר תהליך מסיים, ניתן לקחת בחזרה זיכרון זה.  מערכת ההפעלה צריכה למנוע מתהליך גישה לזיכרון של תהליכים אחרים.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 3 Swapping  זיכרון של תהליך שאינו רץ מועבר לדיסק (swap- out).  כאשר תהליך חוזר לרוץ, מקצים לו מחדש מקום ומביאים את הזיכרון שלו (swap-in). דורש מנגנון תמיכה... זיכרון המשתמש זיכרון מערכת הפעלה P3P3 דיסק זיכרון ראשי (פיזי) P2P2 P1P1 P1P1 P2P2

Spring 03 חגית עטיה © מערכות הפעלה, שקף 4 מרחב הכתובות של התהליך ( תזכורת ) 0x xFFFFFFFF address space code (text segment) static data (data segment) heap (dynamic allocated mem) stack (dynamic allocated mem) Program Counter Stack Pointer

Spring 03 חגית עטיה © מערכות הפעלה, שקף 5 מרחב הכתובות של התהליך  בעיקרון, כל מרחב הכתובות צריך להיות זמין בזיכרון הפיזי של המחשב, כאשר התהליך רץ... כתובת של 32 ביטים  מחשב עם זיכרון פיזי בגודל 2 32 = 4GB?... ומה עם דרישות הזיכרון של תהליכים אחרים ?  האם תהליך באמת צריך את כל הזיכרון הזה ?... בכלל משתמש בו ?  השטח הכולל שבשימוש קטן בהשוואה למרחב הזיכרון כולו  מקצים זיכרון רק אם משתמשים בו.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 6 חיסכון בזיכרון  האם תהליך באמת צריך את כל הזיכרון הזה כל הזמן ?... ואם השתמש פעם אחת, האם ייגש אליו שנית ?  קוד איתחול.  מחסנית שגדלה מאוד, ואז קטנה.  זיכרון דינאמי משוחרר על - ידי התהליך  משתנים שמשתמשים בהם רק בשלב מסוים של הקוד  עקרון הלוקליות : תהליך ניגש רק לחלק מזערי של הזיכרון שברשותו בכל פרק זמן נתון  צריך לאחסן ערכים של משתנים, גם אם לא משתמשים בהם... אבל לא בזיכרון הפיזי !

Spring 03 חגית עטיה © מערכות הפעלה, שקף 7 זרוק אותו לדיסק ! הדיסק מכיל חלקים מהזיכרון של תהליך שרץ כרגע. צריך לזכור מה נמצא בזיכרון הפיזי ואיפה ( ונמצא בדיסק ). צריך לבחור מה להעביר לדיסק. צריך לזכור איפה שמנו חלקי זיכרון בדיסק, כדי לקרוא אותם בחזרה, אם נצטרך אחר - כך. זיכרון המשתמש P3P3 דיסק זיכרון ראשי (פיזי) P1P1

Spring 03 חגית עטיה © מערכות הפעלה, שקף 8 זיכרון וירטואלי ( ממעוף הציפור )  מרחב כתובות מלא לכל תהליך. יכול להיות גדול מגודל הזיכרון הפיזי. רק חלקי הזיכרון הנחוצים כרגע לתהליך נמצאים בזיכרון הפיזי.  תהליך יכול לגשת רק למרחב הכתובות שלו.  מרחב כתובות פיזי : מוגבל בגודל הזיכרון הפיזי במחשב.  מרחב כתובות וירטואלי אותו רואה כל תהליך. אינו מוגבל בגודלו ( אלא על - ידי גודל הדיסק ).

Spring 03 חגית עטיה © מערכות הפעלה, שקף 9 הפרדה בין תהליכים הגנה. לא מאפשרים לתהליך גישה לנתונים של תהליך אחר. כתובות מתורגמות לתוך מרחב הכתובות הוירטואלי של תהליך זה בלבד. שמירה על אי - תלות בביצועים. מערכת ההפעלה מחלקת משאבים מצומצמים בין כמה תהליכים. דרישות הזיכרון ( פיזי ) של תהליך לא על - חשבון תהליך אחר.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 10 שיטה ישנה : חלוקה קבועה  מערכת ההפעלה מחלקת את הזיכרון הפיזי לחתיכות בגודל קבוע SIZE שיכולות להכיל חלקים ממרחב הכתובות של תהליך.  לכל תהליך מוקצית חתיכת זיכרון פיזי. מספר התהליכים הרצים ≤ מספר החתיכות. זיכרון ראשי (פיזי) P1P1 P2P2 P3P3 P4P4 base p base v זיכרון וירטואלי של תהליך P 2 (בדיסק)

Spring 03 חגית עטיה © מערכות הפעלה, שקף 11 תרגום כתובות בחלוקה קבועה  תירגום כתובת וירטואלית לכתובת פיזית : רגיסטר base P אשר מחזיק את כתובת הבסיס הפיזית של התהליך שרץ במעבד רגיסטר נוסף base V מציין את כתובת הבסיס של החלק ממרחב הכתובות של התהליך שרץ, שנמצא כרגע בזיכרון הפיזי כתובת וירטואלית va נמצאת בזיכרון הפיזי אם היא בתחום של [base V, base V +SIZE) אם לא, צריך להביא את החתיכה המתאימה מהדיסק .. או שגיאה, אם אין חתיכה מתאימה כתובת פיזית = (va – base V ) + base P.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 12 החלפת דפים עם חלוקה קבועה  בהחלפת חתיכות זיכרון של אותו תהליך, מציבים ברגיסטר base V את כתובת התחלת החלק הוירטואלי החדש שנטען לזיכרון  זיכרון התהליך גדול מהזיכרון הפיזי.  הזיכרון הכולל של כל התהליכים גדול מהזיכרון הפיזי.  בהחלפת תהליך, מציבים ברגיסטר base P את כתובת התחלת החתיכה הפיזית שבה נמצא הזיכרון של התהליך החדש  הגנה מפני כתיבה לזיכרון של תהליכים אחרים... כמו כן, מציבים ב - base V את כתובת החלק הוירטואלי המתאים של התהליך החדש

Spring 03 חגית עטיה © מערכות הפעלה, שקף 13 בעיות עם חלוקה קבועה  החלפה של חתיכת זיכרון שלמה בבת אחת.  עבודה עם כתובות זיכרון רציפות : אם גדול מספיק להכיל כל מה שצריך ( וגם מה שבאמצע ),  כל החלפה לוקחת הרבה זמן. מאפשר מעט חתיכות שונות  מעט מידי תהליכים רצים בו - זמנית.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 14 שברור פנימי דרישות זיכרון שונות לתהליכים שונים. חלק מחתיכת הזיכרון של התהליך מבוזבז ( internal fragmentation) P1P1 P2P2 P3P3 P4P4 P5P5

Spring 03 חגית עטיה © מערכות הפעלה, שקף 15 שיטה ישנה נוספת : חלוקה משתנה  הרחבה של השיטה הקודמת, על - ידי תוספת רגיסטר המציין את אורך החתיכה.  מונע שיברור פנימי...  כמה מקום להקצות לתהליך שמגיע ?

Spring 03 חגית עטיה © מערכות הפעלה, שקף 16 שיברור חיצוני שאריות מקום בין החתיכות שלא מתאימות לכלום. external fragmentation P1P1 P2P2 P3P3 P4P4 P5P5 P6P6

Spring 03 חגית עטיה © מערכות הפעלה, שקף 17 שיטה מודרנית : דפדוף  מחלקים את הזיכרון הוירטואלי לדפים בגודל קבוע (pages). גדולים מספיק לאפשר כתיבה / קריאה יעילה לדיסק. קטנים מספיק לתת גמישות. גודל טיפוסי = 4K.  הזיכרון הפיזי מחולק למסגרות (frames) בגודל דף זיכרון מדומה זיכרון פיזי דיסק

Spring 03 חגית עטיה © מערכות הפעלה, שקף 18 דפדוף  כל מסגרת בזיכרון הפיזי יכולה להחזיק כל דף וירטואלי.  כל דף וירטואלי נמצא בדיסק.  חלק מהדפים הוירטואליים נמצאים בזיכרון הפיזי. זיכרון מדומה זיכרון פיזי דיסק

Spring 03 חגית עטיה © מערכות הפעלה, שקף 19 מנגנון התרגום  צריך למפות מכתובת וירטואלית לכתובת פיזית ( בזיכרון הראשי או בדיסק ). איזה דף נמצא איפה ? ומהר... דורש תמיכת חומרה. זיכרון מדומה זיכרון פיזי דיסק מנגנון מיפוי / תרגום

Spring 03 חגית עטיה © מערכות הפעלה, שקף 20 טבלת הדפים  אחת לכל תהליך.  כל כניסה בטבלת הדפים מתייחסת למספר דף וירטואלי זהו האינדקס של הכניסה. ומכילה מספר מסגרת פיזית זהו ערך הכניסה.  לכתובת יש שני חלקים : מספר הדף (Virtual Page Number). offset ( מיקום בתוך הדף ).

Spring 03 חגית עטיה © מערכות הפעלה, שקף 21 מיפוי  ה VPN מהווה מצביע לטבלת הדפים ומאפשר למצוא את מספר המסגרת שבו נמצא הדף ( Physical Page Number ). הוספת ה offset נותנת את הכתובת עצמה. כתובת וירטואלית Virtual page #offset Page frame # כתובת פיזית Page frame #offset Page table

Spring 03 חגית עטיה © מערכות הפעלה, שקף 22 דוגמא  כתובת וירטואלית של 32- ביט. מרחב הכתובות מכיל 2 32 כתובות (=4GB).  דפים עם K4 (= 2 12 ) כתובות. 12 ביטים ל - offset. 20 ביטים ל - VPN. כתובת וירטואלית תתורגם ל

Spring 03 חגית עטיה © מערכות הפעלה, שקף 23 כניסות בטבלת הדפים מכילות גם מידע ניהולי, בנוסף למיקום הדף הפיזי :  valid bit: האם הכניסה רלוונטית. מודלק כאשר הדף בזיכרון, כבוי אם הדף נמצא רק בדיסק.  reference bit: האם ניגשו לדף. מודלק בכל גישה לדף.  modify bit: האם הייתה כתיבה לדף. בהתחלה כבוי, מודלק כאשר יש כתיבה לדף.  protection bits: מה מותר לעשות על הדף. Page frame #VprotectRM

Spring 03 חגית עטיה © מערכות הפעלה, שקף 24 Page Fault  כאשר החומרה ניגשת לזיכרון לפי טבלת הדפים ומגיעה לדף שאינו בזיכרון הפיזי, נגרמת חריגה מסוג Page Fault בטיפול בחריגה זו, גרעין מערכת ההפעלה טוען את הדף המבוקש למסגרת בזיכרון הפיזי ומעדכן טבלאות דפים  ייתכן שיהיה צורך לפנות דף ממסגרת בזיכרון לצורך טעינת הדף החדש .. כולל כתיבת הדף הישן לדיסק אם הוא עודכן כאשר מסתיים הטיפול בחריגה, מבוצעת ההוראה מחדש  restartable instruction Page Fault יכולה להגרם גם מסיבות אחרות : גישה לא חוקית לזיכרון, גישה לדף לא מוקצה ועוד

Spring 03 חגית עטיה © מערכות הפעלה, שקף 25 דפדוף : הטוב  חוסך שיברור חיצוני : כל מסגרת פיזית יכולה לשמש לכל דף וירטואלי. מערכת - ההפעלה זוכרת איזה מסגרות פנויות.  מצמצם שיברור פנימי : דפים קטנים בהרבה מחתיכות.  קל לשלוח דפים לדיסק : בוחרים גודל דף שמתאים להעברה בבת - אחת לדיסק. לא חייבים למחוק, ניתן רק לסמן כלא - רלוונטי ( ביט V).  אפשר להחזיק בזיכרון הפיזי קטעים לא - רציפים.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 26 דפדוף : הרע  גודל טבלאות הדפים : 4 בתים לכל כניסה, 2 20 כניסות  טבלת דפים בגודל 4MB לכל תהליך. ואם יש 20 תהליכים ???  תקורה של גישות לזיכרון. לפחות גישה נוספת לזיכרון ( לטבלת הדפים ) על מנת לתרגם את הכתובת.  עדיין יש שברור פנימי : גודל זיכרון התהליך אינו כפולה של גודל הדף ( שאריות בסוף ). דפים קטנים ממזערים שברור פנימי, אבל דפים גדולים מחפים על שהוּת בגישה לדיסק (disk latency).

Spring 03 חגית עטיה © מערכות הפעלה, שקף 27 טבלת דפים בשתי - רמות  חוזרים על אותו תעלול, ושולחים חלקים מטבלת הדפים לדיסק. למשל, דפים של טבלת הדפים שמתייחסים לתהליכים לא פעילים. רמה נוספת של הצבעה.  טבלת דפים בריבוע מאפשרת למצוא את הדפים של טבלת הדפים.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 28 חלוקת הכתובת בשתי - רמות  לכתובת וירטואלית יש שלושה חלקים :  רצוי שהטבלה ברמה העליונה תכנס בדף אחד KB4 = 1024 כניסות כל - אחת עם 4 בתים. החלק העליון של הכתובת צריך להיות עם 10 ביטים. גם החלק התחתון 10 ביטים. Virtual page #offset secondary page #offsetmaster page #

Spring 03 חגית עטיה © מערכות הפעלה, שקף 29 טבלת דפים בשתי - רמות : מיפוי כתובת וירטואלית Secondary page table כתובת פיזית Page frame #offset top-level page table secondary page #offsetmaster page # Page frame # page table

Spring 03 חגית עטיה © מערכות הפעלה, שקף 30 דפדוף של טבלת הדפים  הטבלה ברמה העליונה תמיד בזיכרון הראשי.  תקורה של שתי גישות זיכרון ( ולפעמים גישה לדיסק !) על כל גישה לדף. פתרון ? שימוש במטמון (cache) מיוחד. קטן וזריז...

Spring 03 חגית עטיה © מערכות הפעלה, שקף 31 Translation Lookaside Buffer (TLB)  מטמון חומרה אשר שומר מיפויים (= תירגוּמים ) של מספרי דפים וירטואליים למספרי דפים פיזיים. למעשה, שומר עבור כל מספר דף וירטואלי את כל הכניסה שלו בטבלת הדפים, אשר יכולה להכיל מידע נוסף ( זהו הערך ). המפתח הוא מספר הדף הוירטואלי. קטן מאוד : כניסות ( סך - הכל KB64-192). מהיר מאוד : חיפוש במקביל ( תוך cycle אחד או שניים ). אם כתובת נמצאת ב TLB ( פגיעה, hit )  הרווחנו. אם יש החמצה ( miss )  תרגום רגיל דרך טבלת הדפים.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 32 ביצועי ה TLB  מאפשר תרגום עבור KB כתובות זיכרון. אם תהליך ניגש ליותר זיכרון  יותר החטאות ב TLB.  פגיעוֹת כמעט ב 99% של הכתובות ! מידה רבה של מקומיוּת ( locality ) בגישה לזיכרון.  לוקליות במקום (spatial locality): מסתובבים בכתובות קרובות. ( אם ניגשתי לכתובת x, סיכוי טוב שאגש לכתובת x+d.)  לוקליות בזמן (temporal locality): חוזרים לאותן כתובות בזמנים קרובים. ( אם ניגשתי לכתובת x בזמן t, סיכוי טוב שאגש אליה גם בזמן t+Δ.)

Spring 03 חגית עטיה © מערכות הפעלה, שקף 33 סגמנטים  חלוקה של זיכרון התהליך לחלקים עם משמעות סמנטית. קוד, מחסנית, משתנים גלובליים... בגודל שונה (  יותר שיברור חיצוני ). הביטים העליונים של הכתובת הוירטואלית מציינים את מספר הסגמנט. ניהול כמו זיכרון עם חלוקה משתנה ( חתיכות באורך לא - קבוע ). לכל סגמנט, רגיסטר בסיס וגבול, המאוחסנים בטבלת סגמנטים. מדיניות שיתוף והגנה שונה לסגמנטים שונים.  אפשר לשתף קוד, אסור לשתף מחסנית זמן - ביצוע.  שילוב עם דפדוף.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 34 דוגמא : Linux בסביבת IA32  מערכות IA32 מאפשרות שילוב של סגמנטציה ודפדוף סגמנט מוגדר כאוסף רציף של דפים וירטואליים  Windows מנצלת תמיכה זו וממש יוצרת לכל תהליך סגמנט נפרד לקוד, סגמנט נפרד לנתונים וכו '  Linux אינה מנצלת את מנגנון הסגמנטציה המוצע בחומרה עובדת גם על ארכיטקטורות חומרה אחרות שתומכות בדפדוף אבל לא בסגמנטציה  עם זאת, Linux מכילה מנגנון סגמנטציה פנימי בצורה של איזורי זיכרון דפדוף של כל הסגמנטים עם טבלת דפים עם שלוש - רמות.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 35 כמה זיכרון פיזי תהליך צריך באמת ?  לתהליכים שונים, דרישות זיכרון שונות.  אם תהליך משתמש באופן פעיל בהרבה זיכרון, אין מה להריץ אותו כאשר הזיכרון הפיזי מלא מידי.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 36 Working set  קבוצת העבודה של תהליך P, WS P (w) = הדפים אליהם תהליך P ניגש ב w הגישות האחרונות. ככל שהקבוצה קטנה יותר ( עבור ערך w קבוע ) יש יותר מקומיוּת בגישות לזיכרון של התהליך. אם קבוצת העבודה לא נמצאת בזיכרון, מערכת ההפעלה מתמוטטת מרוב הבאות / פינויים של דפים (thrashing) זמן # דף WS(3)

Spring 03 חגית עטיה © מערכות הפעלה, שקף 37 דפדוף לפי דרישה  מביאים דף רק אם התהליך דורש אותו ( demand paging ) למשל, בהתחלת הביצוע ניגשים לדפים חדשים, של נתונים ושל קוד. אם הדף לא נמצא בזיכרון, קורה page fault.  לעומת זאת, prepaging מנסה לנבא איזה דפים ידרשו, ומביא אותם מראש. גישה לדיסק תוך כדי חישוב אחר במעבד.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 38 מדיניות ההחלפה את מי מפנים ?  מטרה עיקרית : מזעור מספר פסיקות הדף. מחיר פינוי דף " מלוכלך " יקר יותר מאשר פינוי דף נקי.  מתי עושים מה : טיפול בפסיקת דף מתבצע on-line. תהליך פינוי דפים מתבצע בדרך - כלל ברקע (off-line), כאשר מספר המסגרות הפנויות יורד מתחת לאיזשהו סף. דפים מלוכלכים נכתבים ברקע לדיסק.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 39 אלגוריתם FIFO מפנה את הדף שנטען לפני הכי הרבה זמן ABCDABCDABCD 0AAADDDCCCBBB 1BBBAAADDDCC 2CCCBBBAAAD

Spring 03 חגית עטיה © מערכות הפעלה, שקף 40 אנומליה באלגוריתם FIFO ABCDABEABCDE 0AAADDDEEEEEE 1BBBAAAAACCC 2CCCBBBBBDD 0AAAAAAEEEEDD 1BBBBBBAAAAE 2CCCCCCBBBB 3DDDDDDCCC

Spring 03 חגית עטיה © מערכות הפעלה, שקף 41 אלגוריתם אופטימאלי  אם כל הגישות לזיכרון ידועות מראש...  האלגוריתם החמדן מפנה מהזיכרון את הדף שהזמן עד לגישה הבאה אליו הוא הארוך ביותר. ABCABDADBCB 0AAAAAAAAACC 1BBBBBBBBBB 2CCCDDDDDD

Spring 03 חגית עטיה © מערכות הפעלה, שקף 42 Least Recently Used (LRU) מפנה את הדף שהגישה האחרונה אליו היא המוקדמת ביותר ABCABDADBCB 0AAAAAAAAACC 1BBBBBBBBBB 2CCCDDDDDD ABCDABCDABCD 0AAADDDCCCBBB 1BBBAAADDDCC 2CCCBBBAAAD מתנהג כמו החמדן מתנהג כמו FIFO

Spring 03 חגית עטיה © מערכות הפעלה, שקף 43 מימוש LRU  חותמת זמן (timestamp) לכל דף בגישה לדף מעדכנים את החותמת מפנים את הדף עם הזמן המוקדם יותר  ניהול מחסנית בגישה לדף מעבירים את הדף לראש המחסנית מפנים את הדף בתחתית המחסנית  יקר ודורש תמיכה בחומרה

Spring 03 חגית עטיה © מערכות הפעלה, שקף 44 LRU מקורב : אלגוריתם ההזדמנות השנייה reference bit לכל דף.  בגישה לדף, הביט מודלק.  בפינוי דפים, מערכת ההפעלה עוברת באופן מחזורי על כל הדפים אם reference bit = 0, הדף מפונה. אם reference bit = 1, מאפסים את הביט.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 45 LRU מקורב : שיבה טובה  בגישה לדף מבצעים : R = 1  כל יחידת timer, עבור כל דף בזיכרון הפיזי מבצעים : if (R) then age = 0 R = 0 else age++ if ( age > threshold ) evict page  מצרפים שדה גיל (age) לכניסה של דף בטבלת הדפים.  דפים שלא ניגשו אליהם הרבה זמן, מפונים מהזיכרון.

Spring 03 חגית עטיה © מערכות הפעלה, שקף 46 דוגמא : אלגוריתם דפדוף ב NT  לפי דרישה, אבל מביאים קבוצת דפים מסביב.  מדיניות הדפדוף היא FIFO על הדפים של תהליך ( בנפרד ).  מנהל הזיכרון הוירטואלי עוקב אחרי ה - working set של התהליכים, ומריץ את תהליכים שיש בזיכרון מקום לכל ה - working set שלהם.  גודל ה - working set נקבע עם התחלת התהליך, לפי בקשתו ולפי הצפיפות הנוכחית בזיכרון.