Introduction to Operating Systems Chapter 7

79
Chapter 7 - Memory Management 1 .1 מבוא למערכות הפעלה.2 תהליכים.3 תזמון תהליכים.4 תקשורת בין תהליכים פנימיים.5 נעילה( תקיעה) .6 תהליכים קלי משקל.7 ניהול זיכרון.8 זיכרון וירטואלי ומדיניות ניהול זיכרון וירטואלי.9 ניהול מערכת הקבצים.10 ניהול מערכת קבצים מבוזרת.11 מערכת שרת לקוח.12 מכונה וירטואליתShayke Bilu PhD

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

Chapter 7 - Memory Management 11

Shayke Bilu PhD

Chapter 7 - Memory Management 12

Shayke Bilu PhD

Chapter 7 - Memory Management 13

Shayke Bilu PhD

Chapter 7 - Memory Management 14

Shayke Bilu PhD

Chapter 7 - Memory Management 15

Shayke Bilu PhD

Chapter 7 - Memory Management 16

Shayke Bilu PhD

Chapter 7 - Memory Management 17

Shayke Bilu PhD

Chapter 7 - Memory Management 18

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

Chapter 7 - Memory Management 23

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

!!!התשובה היא שלא

-הוא שימוש ב האמיתיהפתרון

Chapter 7 - Memory Management 79

Shayke Bilu PhD