Introduction to Operating Systems Chapter 7
Transcript of Introduction to Operating Systems Chapter 7
Chapter 7 - Memory Management 1
מבוא למערכות הפעלה1.
תהליכים2.
תזמון תהליכים3.
תקשורת בין תהליכים פנימיים4.
(תקיעה)נעילה 5.
תהליכים קלי משקל6.
ניהול זיכרון7.
זיכרון וירטואלי ומדיניות ניהול זיכרון וירטואלי8.
ניהול מערכת הקבצים9. ניהול מערכת קבצים מבוזרת10. מערכת שרת לקוח11. מכונה וירטואלית12.
Shayke Bilu PhD
מהו ניהול זיכרון• היררכית אחסון• דוגמאות לניהול זיכרון במערכות הפעלה שונות• ריבוי חוצצים קבועים ודינאמיים• אלגוריתם ניהול מעקב אחרי זיכרון• מרחב הכתובות• החלפת דפים• זיכרון וירטואלי• ניפוי ודפדוף, שברור•
1951: the UNIVAC computer: 1000 72-bit words!
1971: the Cray 1 supercomputer: About 200K memory gates!
1983: the IBM XT: 640KB “should be enough for everybody…”
2014: today’s laptops: 8GB-64GB Chapter 7 - Memory Management Shayke Bilu PhD
3
מתרחבות עד כדי מילוי כל תוכניות: "גרסה של צחוק פרקינסון
"הזיכרון החופשי היכול להכיל אותן
תמיד רוצים זיכרון שיהיה תוכניתניםבאופן אידיאלי:
מהיר
גדול
זול
לא נדיף
יציב
בעל נגישות מיטבית
Chapter 7 - Memory Management Shayke Bilu PhD 4
. מהיר ויציב, נדיףכמות קטנה מאוד של זיכרון : חומרהאוגרי 1.
נדיפים , יקר, כמות קטנה של זיכרון מהיר: מטמון2.
, מחיר בינוני, מהיר, זיכרוןכמות בינונית של : זיכרון ראשי3.
. נדיףזיכרון
יציב , נדיףבלתי , זול, כמות גדולה של זיכרון איטי: דיסק4.
ומגובה
בזיכרון המטפל מנהל הזיכרון הוא החלק של מערכת ההפעלה 5.
(: דיסק)המשני לאחסון בינו הראשי ובהעברות
בכל רגע נתוןעוקב אחר אילו חלקים של זיכרון נמצאים בשימוש •
לצורך ריצהמקצה זיכרון לתהליכים כאשר הם צריכים את זה •
רציםהם ממקם מחדש את הזיכרון עבור התהליכים כאשר •
היררכיית הזיכרון
Chapter 7 - Memory Management Shayke Bilu PhD 5
היררכית אחסון מונחים מרכזיים בזיכרון תוכנית הקצבה של זיכרון מוקדם
הקצבה הנוגעת לזיכרון •
מחיצות קבועות •
מחיצות דינאמיות •
ניהול מקום חופשי ומאותר בזיכרון
Chapter 7 - Memory Management 6
Shayke Bilu PhD
Chapter 7 - Memory Management 7
Main Memory • Cache on Chip (internal cache)
• External Cache memory
• RAM
Secondary Storage • Hard Disk
Tertiary Storage • DVD, CD-ROM, CD-RW
• Flash Memory
Access time
decreases
Capacity
decreases
Cost
increases
Shayke Bilu PhD
Term Meaning Contiguous
Stored in consecutive memory addresses
Non-contiguous
NOT stored in consecutive memory addresses
Real memory
Memory area limited to actual physical RAM
- RAM
Virtual memory
Logical memory area created using a
combination of RAM and hard disk
RAM
Chapter 7 - Memory Management 8
Shayke Bilu PhD
Term Meaning Logical
What software thinks
Physical
What hardware knows
Block
Smallest amount of information transferred
by a disk "
Principle of
locality
Program tend to access memory within some
localized area
Fragmentation
Splitting of memory into little bits
Chapter 7 - Memory Management 9
Shayke Bilu PhD
שאר הזיכרון פנוי , אחרי טעינת מערכת ההפעלה
לשימוש חופשי של תוכנית המשתמש
י כמות הזיכרון ”גודל תוכניות המשתמש נקבע ע
החופשי שנותר
ניתן להשתמש ב- overlays עבור תוכניות גדולות
Chapter 7 - Memory Management 10
מערכת הפעלה והתקנות
OS & drivers תוכנית משתמש
User Program
Shayke Bilu PhD
המפעיל י”ע נקבעים (ושונים שווים) החוצצים וגדלי מספרי על מבוססים והם פעולתה מתחילה ההפעלה מערכת כאשר
במערכת העבודה עומס סטטיסטיקתמחשבי של הפעלה במערכת שימוש לידי באה IBM יכולת בעלי
(360/400 מחשבי סדרת) תוכניות ריבוי הפעלת
Chapter 7 - Memory Management 19
Process 1
Process 2
Process 3
F
r
a
g
m
e
n
t
F
r
a
g
m
e
n
t
F
r
a
g
m
e
n
t
os
Partition 1 Partition 2 Partition 3
Shayke Bilu PhD
מקום ומחיקת יצירת לאחר מיד מתרחשת חציצה התוכנית טעינת זמן בעת בזיכרון
מחדש מיקום י”ע חציצה לבטל ניתן מנוהל להיות חייב שימוש לידי בה שלא חופשי זיכרון
מסודר באופןמנת על וזה מהיר להיות חייב בזיכרון מחדש מיקום
במערכת העבודה עומס את להקטיןאלגוריתם י”ע מבוצעת בזיכרון חופשי מקום הקצבת
גודלו ,מיקומו ,חופשי מקום שמאתר ייחודי הצבה שוחרר בו והזמן
Chapter 7 - Memory Management 20
Shayke Bilu PhD
חוצצים נוצרים בעת טעינת התוכנית
Chapter 7 - Memory Management 21
Memory at system start up
OS
Three processes started
OS Process 1 Process 2 Process 3
Second processes is finished
OS Process 1 Process 3
A large fourth process arrives. Process 3 is relocated
OS Process 1 Process 3 Process 4
Shayke Bilu PhD
של קבוצה קיימת נתון זמן בכל hole-שונים בגדלים ,ים
מחפשים ,לזיכרון הזקוק תהליך כשמגיע .בזיכרון מפוזרים
הוא מידי גדול hole-ה אם .עבורו מספיק גדול hole בקבוצה
השני והחלק לתהליך מוקצה אחד חלק :חלקים לשני מחולק
.ים-hole-ה לקבוצת חוזר
ה לקבוצת שחוזר ,שלו הזיכרון בלוק משוחרר ,תהליך בסיום-
hole. ל פיזית צמוד ששוחרר והבלוק במידה-hole אחד
.יחד אותם מאחדים
היא הבעיה .הדינאמית ההקצאה לבעיית דוגמא הינו זה תהליך
שיטות ארבע יש ולכך הרשימה מתוך hole לבחור איך למעשה
.נפוצות
Chapter 7 - Memory Management 22
Shayke Bilu PhD
סיביות מפת קבוע בגודל מניה ליחידות מחולק הזיכרון •
עבור סיביות "1" -ו חופשיות סיביות "0" עם סיביות מפת •
מניה יחידות
Chapter 7 - Memory Management 24
Memory allocation units: Green - used, Yellow - unused
1 0 1 0 1 0 0 1 1 0 1 0 1 1
Bit map of the above memory
Shayke Bilu PhD
רשימות מקושרותLinked Lists
Chapter 7 - Memory Management 25
Memory allocation units: Green - used, Yellow - unused
1 2 3 4 5 6 7 8 9 10 11 12 13 14
U 1 5 F 6 3 U 9 2 F 11 4
Linked list memory map
Shayke Bilu PhD
ראשונית התאמה First fit
מספיק גדול אשר ברשימה הראשון hole-ה הקצאת • מתחילת להתחיל יכול החיפוש .התהליך בשביל
.עצרנו שבה האחרונה מהנקודה או הרשימה
משנית התאמה Next fit
מספיק גדול אשר ברשימה הראשון hole-ה הקצאת • מהנקודה ורק אך מתחיל החיפוש .התהליך בשביל
.עצרנו שבה האחרונה
Chapter 7 - Memory Management 26
Shayke Bilu PhD
גרועה התאמה Worst fit
יש שוב .ברשימה ביותר הגדול hole-ה הקצאת • .הרשימה כל על לעבור
ביותר הטובה ההתאמה Best fit
מספיק גדול אשר ביותר הקטן hole-ה הקצאת • .הרשימה כל על לעבור יש .התהליך בשביל
Chapter 7 - Memory Management 27
Shayke Bilu PhD
הגרוע לביצוע מביאה כ”בד ביותר הטובה ההתאמה
המקומות את משאירה היא כי היא הסיבה ,ביותר
היא אך ,אחרים תהליכים עבור אפשריים החופשיים
ביותר היציבה
היא כ”ובד ליישום הפשוטה היא הראשונית ההתאמה
ביותר היעילה ולכן הזולה ,המהירה גם
מהתאמה גרועה יותר קצת כ”בד היא משנית התאמה
שמירת עבור הנדרשת התקורה בגלל בעיקר ראשונית
.יציבה יותר היא אך ,הקודם מיקום
Chapter 7 - Memory Management 28
Shayke Bilu PhD
גדלי היחידות 2הזיכרון המוקצב יוגדר על פי כוחם של בעת זמן טעינת התהליך הבא
Chapter 7 - Memory Management 29
1 MB
512KB 256KB 90KB 128KB
300KB 256KB 90KB 128KB
300KB 512KB
Initially
90 KB request
300 KB request
90 KB returned
Shayke Bilu PhD
מהירות הקצבות שתי בונה השיטה.
בחזקת 2 של בגודל נתונים בלוק אם k אזי משוחרר
“ הפנויים המקומות רשימת את רק בודק הזיכרון מנהל
k+1 בחזקת 2 של בגודל לחוצץ אותם ומאחד ”החורים
הזיכרון שבקשות מאז נוצרת למנות פנימית חלוקה
k בחזקת 2 של בגודל לחוצצים מתאימות
Chapter 7 - Memory Management 30
Shayke Bilu PhD
יותר קטנים לחלקים נחלק בשימוש שלא זיכרון
באו לא אשר תוכניות של חלקים להכיל יכול הזיכרון
הריצה בזמן שימוש לידי
של הפיזי גודלו י”ע תמיד מוגבל התהליך גודל
הזיכרון
Chapter 7 - Memory Management 31
Shayke Bilu PhD
Chapter 7 - Memory Management 32
מערכת ההפעלה צריכה לנהל את השימוש בזיכרון:
.חלק מהזיכרון מוקצה למערכת ההפעלה עצמה•
.שאר הזיכרון מתחלק בין התהליכים הרצים כרגע•
.כאשר תהליך מתחיל צריך להקצות לו זיכרון•
.ניתן לקחת בחזרה זיכרון זה, כאשר תהליך מסיים•
מערכת ההפעלה צריכה למנוע מתהליך גישה לזיכרון
.של תהליכים אחרים
Shayke Bilu PhD
Chapter 7 - Memory Management 33
זיכרון של תהליך שאינו רץ
(.swap-out)מועבר לדיסק
כאשר תהליך חוזר לרוץ ,
מקצים לו מחדש מקום
ומביאים את הזיכרון שלו
(swap-in.)
דורש מנגנון תמיכה...
זיכרון
המשתמש
זיכרון
מערכת הפעלה
P3
דיסק (פיזי)זיכרון ראשי
P2 P1
P1
P2
Shayke Bilu PhD
, להריץ אותו למשך זמן מה, להביא את התהליך לשלמות
לכתוב אותו לזיכרון לגיבוי עתידי
Chapter 7 - Memory Management 2014 Shayke Bilu Shayke Bilu PhD 34
Chapter 7 - Memory Management 35
0x00000000
0xFFFFFFFF
address space
code
(text segment)
static data
(data segment)
heap
(dynamic allocated mem)
stack
(dynamic allocated mem)
Program
Counter
Stack
Pointer
Shayke Bilu PhD
Chapter 7 - Memory Management 36
כל מרחב הכתובות צריך להיות זמין בזיכרון הפיזי של המחשב ,
...כאשר התהליך רץ
של מחשב עם זיכרון פיזי בגודל ביטים 32כתובת של
232 =4.3GB?
בגודל של מחשב עם זיכרון פיזי ביטים 64כתובת של
264 =18.4EX?
?ומה עם דרישות הזיכרון של תהליכים אחרים...
הזיכרון הזה כלהאם תהליך באמת צריך את?
?בכלל משתמש בו...
השטח הכולל שבשימוש קטן בהשוואה למרחב הזיכרון כולו
מקצים זיכרון רק אם משתמשים בו. Shayke Bilu PhD
Chapter 7 - Memory Management 37
הזמן כלהאם תהליך באמת צריך את כל הזיכרון הזה? ?האם ייגש אליו שנית, ואם השתמש פעם אחת...
קוד אתחול.
ואז קטנה, מחסנית שגדלה מאוד.
ידי התהליך-זיכרון דינאמי משוחרר על
משתנים שמשתמשים בהם רק בשלב מסוים של הקוד
תהליך ניגש רק לחלק מזערי של :עקרון הלוקליות הזיכרון שברשותו בכל פרק זמן נתון
גם אם לא משתמשים , צריך לאחסן ערכים של משתנים !אבל לא בזיכרון הפיזי ... בהם
Shayke Bilu PhD
Chapter 7 - Memory Management 38
הדיסק מכיל חלקים מהזיכרון
:של תהליך שרץ כרגעצריך לזכור מה נמצא בזיכרון •
(.ונמצא בדיסק)הפיזי ואיפה
.צריך לבחור מה להעביר לדיסק•
צריך לזכור איפה שמנו חלקי •
כדי לקרוא אותם , זיכרון בדיסק
.כך-אם נצטרך אחר, בחזרה
זיכרון
המשתמש
P3
דיסק
(פיזי)זיכרון ראשי
P1
Shayke Bilu PhD
Chapter 7 - Memory Management 39
מרחב כתובות מלא לכל תהליך.
.יכול להיות גדול מגודל הזיכרון הפיזי•
רק חלקי הזיכרון הנחוצים כרגע לתהליך נמצאים בזיכרון •
.הפיזי
תהליך יכול לגשת רק למרחב הכתובות שלו.
פיזי מרחב כתובות :
(.הדיסק-על ידי גודל)מוגבל בגודל הזיכרון הפיזי במחשב •
אותו רואה כל תהליך וירטואלימרחב כתובות.
(.ידי גודל הדיסק-אלא על)אינו מוגבל בגודלו •
Shayke Bilu PhD
Chapter 7 - Memory Management 40
הגנה. .לא מאפשרים לתהליך גישה לנתונים של תהליך אחר•
כתובות מתורגמות לתוך מרחב הכתובות הווירטואלי של תהליך •
.זה בלבד
תלות בביצועים-שמירה על אי. .מערכת ההפעלה מחלקת משאבים מצומצמים בין כמה תהליכים•
.חשבון תהליך אחר-של תהליך לא על (פיזי)דרישות הזיכרון •
Shayke Bilu PhD
Chapter 7 - Memory Management 41
מערכת ההפעלה מחלקת את הזיכרון הפיזי לחתיכות
שיכולות להכיל חלקים ממרחב sizeבגודל קבוע
.הכתובות של תהליך
לכל תהליך מוקצית פיסת זיכרון פיזי.
.מספר החתיכות≥ מספר התהליכים הרצים • (פיזי)זיכרון ראשי
P1
P2
P3
P4
basep
basev
(בדיסק) P2זיכרון וירטואלי של תהליך
Shayke Bilu PhD
Chapter 7 - Memory Management 42
החלפה של פיסת זיכרון שלמה בבת אחת.
עבודה עם כתובות זיכרון רציפות: ( וגם מה שבאמצע)אם גדול מספיק להכיל כל מה שצריך •
כל החלפה לוקחת הרבה זמן.
מאפשר מעט חתיכות שונות •
זמנית-מעט מידי תהליכים רצים בו.
Shayke Bilu PhD
Chapter 7 - Memory Management 43
.דרישות זיכרון שונות לתהליכים שונים
חלק מפיסת הזיכרון של התהליך מבוזבז
(Internal Fragmentation)
P1 P2 P3 P4 P5
Shayke Bilu PhD
Chapter 7 - Memory Management 44
ידי תוספת רגיסטר -על, הרחבה של השיטה הקודמת
המציין את אורך פיסת הזיכרון שהוקצתה לטובת
.התהליך
מונע שיברור פנימי שדורש התעסקות עם מספר
...כתובות גדל והולך
כמה מקום להקצות לתהליך שמגיע?
אפילו ויש , רק לפי הצורך והביקוש ולא ללא הבחנה
.מספיק מקום Shayke Bilu PhD
Chapter 7 - Memory Management 45
.שאריות מקום בין החתיכות שלא מתאימות לכלום
(External Fragmentation)
P1 P2 P3 P4 P5
P6
Shayke Bilu PhD
Chapter 7 - Memory Management 46
מחלקים את הזיכרון הווירטואלי (.pages)בגודל קבוע דפיםל/ גדולים מספיק לאפשר כתיבה •
.קריאה יעילה לדיסק
.קטנים מספיק לתת גמישות•
.4K= גודל דף טיפוסי •
מסגרותהזיכרון הפיזי מחולק ל (frames )בגודל דף
זיכרון מדומה
זיכרון פיזי
דיסק
Shayke Bilu PhD
Chapter 7 - Memory Management 47
כל מסגרת בזיכרון הפיזי
יכולה להחזיק כל דף
.וירטואלי
כל דף וירטואלי נמצא
.בדיסק
חלק מהדפים הווירטואליים
.נמצאים בזיכרון הפיזי
זיכרון מדומה
זיכרון פיזי
דיסק
Shayke Bilu PhD
Chapter 7 - Memory Management 48
צריך למפות מכתובת
וירטואלית לכתובת פיזית
בזיכרון הראשי או )
(.בדיסק
?איזה דף נמצא איפה•
...ומהר•
.דורש תמיכת חומרה•
זיכרון מדומה
זיכרון פיזי
דיסק
מנגנון
/מיפוי
תרגום
Shayke Bilu PhD
Chapter 7 - Memory Management 49
אחת לכל תהליך.
כל כניסה בטבלת הדפים מתייחסת למספר דף וירטואלי
.של הכניסה האינדקסזהו •
ומכילה מספר מסגרת פיזית
.הכניסה ערך זהו•
:לכתובת יש שני חלקים
(.Virtual Page Number)מספר הדף •
•offset (מיקום בתוך הדף.)
Shayke Bilu PhD
Chapter 7 - Memory Management 50
הVPN מהווה מצביע לטבלת הדפים ומאפשר למצוא
Physical Page)את מספר המסגרת שבו נמצא הדף
Number.)
offsetהוספת ה
נותנת את
.הכתובת עצמה
כתובת וירטואלית
Virtual page # offset
Page frame #
כתובת פיזית
Page frame # offset
Page table
Shayke Bilu PhD
Chapter 7 - Memory Management 51
ביט-32כתובת וירטואלית של.
(.4.3GB)כתובות 232מרחב הכתובות מכיל •
(.18.4EXA)כתובות 2 64מרחב הכתובות מכיל•
דפים עםK4 =(212 )כתובות.
.offset -ביטים ל 12•
VPN. (Virtual Process Number) -ביטים ל 20•
כתובת וירטואלית
-תתורגם ל
00000000011100000000110000000000
00000000100100000000110000000000
Shayke Bilu PhD
Chapter 7 - Memory Management 52
:בנוסף למיקום הדף הפיזי, מכילות גם מידע ניהולי valid bit :האם הכניסה רלוונטית.
.כבוי אם הדף נמצא רק בדיסק, מודלק כאשר הדף בזיכרון•
reference bit :האם ניגשו לדף. .מודלק בכל גישה לדף•
modify bit :האם הייתה כתיבה לדף. .מודלק כאשר יש כתיבה לדף, בהתחלה כבוי•
protection bits :מה מותר לעשות על הדף.
Page frame # V protect R M
Shayke Bilu PhD
Chapter 7 - Memory Management 53
כאשר החומרה ניגשת לזיכרון לפי טבלת הדפים ומגיעה
נגרמת חריגה מסוג, לדף שאינו בזיכרון הפיזי
page fault גרעין מערכת ההפעלה טוען את הדף המבוקש , בטיפול בחריגה זו•
למסגרת בזיכרון הפיזי ומעדכן טבלאות דפים
ייתכן שיהיה צורך לפנות דף ממסגרת בזיכרון לצורך טעינת הדף החדש
כולל כתיבת הדף הישן לדיסק אם הוא עודכן...
מבוצעת ההוראה מחדש, כאשר מסתיים הטיפול בחריגה•
restart able instruction
•Page Fault גישה לא חוקית : יכולה להיגרם גם מסיבות אחרות
גישה לדף לא מוקצה ועוד, לזיכרון
Shayke Bilu PhD
Chapter 7 - Memory Management 54
חוסך שיברור חיצוני: .כל מסגרת פיזית יכולה לשמש לכל דף וירטואלי•
.ההפעלה זוכרת איזה מסגרות פנויות-מערכת•
מצמצם שיברור פנימי: .דפים קטנים בהרבה מחתיכות•
קל לשלוח דפים לדיסק: .אחת לדיסק-בוחרים גודל דף שמתאים להעברה בבת•
(.Vביט )רלוונטי -ניתן רק לסמן כלא, לא חייבים למחוק•
רציפים-אפשר להחזיק בזיכרון הפיזי קטעים לא.
Shayke Bilu PhD
Chapter 7 - Memory Management 55
גודל טבלאות הדפים: כניסות 220, בתים לכל כניסה 4•
4טבלת דפים בגודלMB לכל תהליך.
???תהליכים 20ואם יש •
תקורה של גישות לזיכרון. על מנת לתרגם את ( לטבלת הדפים)לפחות גישה נוספת לזיכרון •
.הכתובת
עדיין יש שברור פנימי: (.שאריות בסוף)גודל זיכרון התהליך אינו כפולה של גודל הדף •
אבל דפים גדולים מחפים , דפים קטנים ממזערים שברור פנימי• (.disk latency)בגישה לדיסק שהּותעל
Shayke Bilu PhD
Chapter 7 - Memory Management 56
ושולחים חלקים מטבלת , חוזרים על אותו תעלול
.הדפים לדיסק
דפים של טבלת הדפים שמתייחסים לתהליכים לא , למשל•
.פעילים
.רמה נוספת של הצבעה•
מאפשרת למצוא את הדפים של בריבועטבלת דפים
.טבלת הדפים
Shayke Bilu PhD
Chapter 7 - Memory Management 57
לכתובת וירטואלית יש שלושה חלקים:
רצוי שהטבלה ברמה העליונה תכנס בדף אחד
•KB4 =1024 בתים 4אחת עם -כניסות כל.
.ביטים 10החלק העליון של הכתובת צריך להיות עם •
.ביטים 10גם החלק התחתון •
Virtual page # offset
secondary page # offset master page #
Shayke Bilu PhD
Chapter 7 - Memory Management 58
כתובת וירטואלית
Secondary page table
כתובת פיזית
Page frame # offset
top-level page table
secondary page # offset master page #
Page frame #
page table
Shayke Bilu PhD
Chapter 7 - Memory Management 59
הטבלה ברמה העליונה תמיד בזיכרון הראשי.
( ולפעמים גישה לדיסק)תקורה של שתי גישות זיכרון!
.על כל גישה לדף
? פתרון
(cache)שימוש במטמון
.מיוחד
...קטן וזריז
Shayke Bilu PhD
Chapter 7 - Memory Management 60
של ( תרגּומים)=מטמון חומרה אשר שומר מיפויים
.מספרי דפים וירטואליים למספרי דפים פיזיים
שומר עבור כל מספר דף וירטואלי את כל הכניסה שלו , למעשה•
(.הערךזהו )אשר יכולה להכיל מידע נוסף , בטבלת הדפים
.הוא מספר הדף הווירטואלי המפתח•
(.KB64-192 הכל-סך)כניסות 16-48: קטן מאוד•
(.אחד או שניים cycleתוך )חיפוש במקביל : מהיר מאוד•
.הרווחנו ( hit, פגיעה) TLBאם כתובת נמצאת ב
תרגום רגיל דרך טבלת ( miss)אם יש החמצה
.הדפיםShayke Bilu PhD
Chapter 7 - Memory Management 61
מאפשר תרגום עבורKB64-192 כתובות זיכרון.
.TLBיותר החטאות ב אם תהליך ניגש ליותר זיכרון •
של הכתובות 99%כמעט ב פגיעֹות!
.בגישה לזיכרון( locality) מקומיּותמידה רבה של •
לוקליות במקום(spatial locality :)מסתובבים בכתובות קרובות.
.(x+dסיכוי טוב שאגש לכתובת , xאם ניגשתי לכתובת )
לוקליות בזמן(temporal locality :) חוזרים לאותן כתובות בזמנים
.קרובים
.(t+Δסיכוי טוב שאגש אליה גם בזמן , tבזמן xאם ניגשתי לכתובת )
Shayke Bilu PhD
Chapter 7 - Memory Management 62
חלוקה של זיכרון התהליך לחלקים עם משמעות סמנטית.
...משתנים גלובליים, מחסנית, קוד•
.(יותר שיברור חיצוני )בגודל שונה •
הביטים העליונים של הכתובת הווירטואלית מציינים את מספר •
.הסגמנט
Shayke Bilu PhD
Chapter 7 - Memory Management 63
(.קבוע-חתיכות באורך לא)ניהול כמו זיכרון עם חלוקה משתנה •
.המאוחסנים בטבלת סגמנטים, רגיסטר בסיס וגבול, לכל סגמנט•
.מדיניות שיתוף והגנה שונה לסגמנטים שונים•
ביצוע-אסור לשתף מחסנית זמן, אפשר לשתף קוד.
שילוב עם דפדוף.
Shayke Bilu PhD
Chapter 7 - Memory Management 64
מערכות IA32 ודפדוף סגמנטציה של שילוב מאפשרות
וירטואליים דפים של רציף כאוסף מוגדר סגמנט•
Windows סגמנט תהליך לכל יוצרת וממש זו תמיכה מנצלת
'וכו לנתונים נפרד סגמנט ,לקוד נפרד
Linux בחומרה המוצע הסגמנטציה מנגנון את מנצלת אינה
בדפדוף שתומכות אחרות חומרה ארכיטקטורות על גם עובדת•
בסגמנטציה לא אבל
זאת עם, Linux של בצורה פנימי סגמנטציה מנגנון מכילה
זיכרון אזורי
שלוש עם דפים טבלת עם הסגמנטים כל של דפדוף-
.רמותShayke Bilu PhD
Chapter 7 - Memory Management 65
לתהליכים שונים ,
.דרישות זיכרון שונות
אם תהליך משתמש
באופן פעיל בהרבה
אין מה להריץ , זיכרון
אותו כאשר הזיכרון
.הפיזי מלא מידי
Shayke Bilu PhD
Chapter 7 - Memory Management 66
קבוצת העבודה של תהליךP ,WSP(w) .הגישות האחרונות w-ניגש ב Pהדפים אליהם תהליך =
יש יותר מקומיּות ( קבוע wעבור ערך )ככל שהקבוצה קטנה יותר • .בגישות לזיכרון של התהליך
מערכת ההפעלה , אם קבוצת העבודה לא נמצאת בזיכרון• (.thrashing)פינויים של דפים / מתמוטטת מרוב הבאות
זמן 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
דף# 2 6 1 5 7 7 7 7 5 1 6 2 3 4 4 4 3
43
4 43
243
263
2 6 1
5
1
6
5 7
1 5
7
7 7 5
7 1
5
7
6
1
5
261
26
2 WS(3)
Shayke Bilu PhD
Chapter 7 - Memory Management 67
מביאים דף רק אם התהליך דורש אותו(demand
paging)
של , בהתחלת הביצוע ניגשים לדפים חדשים, למשל•
.נתונים ושל קוד
.page faultמתרחש , ןאם הדף לא נמצא בזיכרו•
לעומת זאת ,pre-paging מנסה לנבא איזה דפים
.ומביא אותם מראש, ידרשו
.גישה לדיסק תוך כדי חישוב אחר במעבד•
Shayke Bilu PhD
Chapter 7 - Memory Management 68
?את מי מפנים
מזעור מספר פסיקות הדף: מטרה עיקרית. .יקר יותר מאשר פינוי דף נקי" מלוכלך"מחיר פינוי דף •
מתי עושים מה: .on-lineטיפול בפסיקת דף מתבצע •
, (off-line)כלל ברקע -תהליך פינוי דפים מתבצע בדרך•
.כאשר מספר המסגרות הפנויות יורד מתחת לאיזשהו סף
סימני המים"לפי עקרון "(water-marks).
.דפים מלוכלכים נכתבים ברקע לדיסק•
Shayke Bilu PhD
Chapter 7 - Memory Management 69
מפנה את הדף שנטען לפני הכי הרבה זמן
A B C D A B C D A B C D
0 A A A D D D C C C B B B
1 B B B A A A D D D C C
2 C C C B B B A A A D
Shayke Bilu PhD
Chapter 7 - Memory Management 70
A B C D A B E A B C D E
0 A A A D D D E E E E E E
1 B B B A A A A A C C C
2 C C C B B B B B D D
0 A A A A A A E E E E D D
1 B B B B B B A A A A E
2 C C C C C C B B B B
3 D D D D D D C C C
Shayke Bilu PhD
Chapter 7 - Memory Management 71
אם כל הגישות לזיכרון ידועות מראש...
מפנה מהזיכרון את הדף שהזמן עד החמדןהאלגוריתם
.לגישה הבאה אליו הוא הארוך ביותר
A B C A B D A D B C B
0 A A A A A A A A A C C
1 B B B B B B B B B B
2 C C C D D D D D D
Shayke Bilu PhD
Chapter 7 - Memory Management 72
מפנה את הדף שהגישה האחרונה אליו היא המוקדמת
ביותרA B C A B D A D B C B
0 A A A A A A A A A C C
1 B B B B B B B B B B
2 C C C D D D D D D
A B C D A B C D A B C D
0 A A A D D D C C C B B B
1 B B B A A A D D D C C
2 C C C B B B A A A D
מתנהג כמו
החמדן
מתנהג כמו
FIFO
Shayke Bilu PhD
Chapter 7 - Memory Management 73
חותמת זמן(timestamp) לכל דף
בגישה לדף מעדכנים את החותמת•
מפנים את הדף עם הזמן המוקדם יותר•
ניהול מחסנית
בגישה לדף מעבירים את הדף לראש המחסנית•
מפנים את הדף בתחתית המחסנית•
יקר ודורש תמיכה בחומרה
Shayke Bilu PhD
Chapter 7 - Memory Management 74
reference bit לכל דף.
הביט מודלק, בגישה לדף.
מערכת ההפעלה עוברת באופן מחזורי על , בפינוי דפים
כל הדפים
.הדף מפונה, reference bit = 0אם •
.מאפסים את הביט, reference bit = 1אם •
Shayke Bilu PhD
Chapter 7 - Memory Management 75
בגישה לדף מבצעים: R = 1
כל יחידתtimer , עבור כל דף
:בזיכרון הפיזי מבצעיםif (R) {
age = 0
R = 0 }
else
age++;
if (age > threshold )
evict page
מצרפים שדה גיל(age )
לכניסה של דף בטבלת
.הדפים
דפים שלא ניגשו אליהם
.מפונים מהזיכרון, הרבה זמן
Shayke Bilu PhD
Chapter 7 - Memory Management 76
אבל מביאים קבוצת דפים מסביב, לפי דרישה.
אלגוריתם הדפדוף הואFIFO על הדפים של כל תהליך
.בנפרד
מנהל הזיכרון הווירטואלי עוקב אחרי ה-working set
ומריץ רק תהליכים שיש בזיכרון מקום , של התהליכים
.שלהם working set-לכל ה
גודל ה-working set לפי , נקבע עם התחלת התהליך
.בקשתו ולפי הצפיפות הנוכחית בזיכרון
Shayke Bilu PhD
Chapter 7 - Memory Management 77
ומביאים קבוצת דפים מסביב, גם כאן לפי דרישה
דפים סמוכים מאוחסנים יחד בדיסק ונטענים יחד כשאחד מהם נדרש•
קירוב ל -אלגוריתם הדפדוף הוא גלובלי-LRU
ניהול מחסנית+ שלוש הזדמנויות
. כל גישה נותנת הזדמנות אחת נוספת•
LFU (Least Frequently Used-דומה ל•
ממוינת לפי מספר , כל הדפים בזיכרון הפיזי נמצאים במחסנית•
. ההזדמנויות
1הזדמנויות ועובר מיד לאזור של 0דף שנטען לזיכרון מתחיל באזור
(. כשניגשים אליו)
פינוי דפים מבוצע מתחתית המחסנית•
Shayke Bilu PhD
Chapter 7 - Memory Management 78
הדיסק מופעל כאמצעי אחרון בלבד
דפים מפונים רק כאשר הזיכרון הפיזי מתמלא מעבר לסף העליון•
ואז מפנים עד מתחת לסף תחתון...
הזיכרון המשמש את הגרעין
אינו מדפדף כלל לדיסק•
ממופה לחלק של הזיכרון הווירטואלי אשר משותף לכל •
"(בייט הרביעי יגה'הג)"התהליכים
Shayke Bilu PhD