זיכרון וירטואלי

21
1 יייייי יייייייי יייייי יייייייי ייייי יי ייייי י 'יייייי ייייי'234119 יייי ייייי ייייי י( class19 ייcsapp )

Upload: andren

Post on 11-Jan-2016

57 views

Category:

Documents


1 download

DESCRIPTION

(יתכן שכדאי לעבור ל class19 של csapp ). זיכרון וירטואלי. זיכרון וירטואלי מבוסס על שקפים מ 'מערכות הפעלה' 234119. תהליך 1. תהליך 2. תהליך 3. שטח זיכרון פנוי. מ"ה. ניהול זיכרון ראשי. זיכרון המחשב מחולק בין מ ” ה ובין התהליכים השונים. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: זיכרון וירטואלי

1

זיכרון וירטואלי

זיכרון וירטואלי

234119מבוסס על שקפים מ 'מערכות הפעלה'

(csapp של class19)יתכן שכדאי לעבור ל

Page 2: זיכרון וירטואלי

2

ניהול זיכרון ראשי

ה ובין התהליכים השונים. ”זיכרון המחשב מחולק בין מ בעבר כל מרחב הזיכרון של תהליך במצב ריצה היה בזיכרון

הראשי לפני תחילת הריצה. כאשר נוצר תהליך חדש, היה מוקצה לו שטח זיכרון פנוי שיכול

להכיל את כל מרחב הזיכרון שלו. .כאשר הסתיים התהליך, שוחרר הזיכרון שהוקצה לו

שטח זיכרון פנוי

תהליך 3

תהליך 2

תהליך 1

מ"ה

Page 3: זיכרון וירטואלי

3

הבעיה

בד"כ הזיכרון הראשי במחשב לא גדול מספיק לספק את דרישתהזיכרון של כל התהליכים הרצים ''בו-זמנית'' )או אפילו אחד!(.

Page 4: זיכרון וירטואלי

4

פתרונות ראשוניים:

:לחסוך קוד התהליך בדרך כלל מנופח עכב כך שהוא מכיל ספריות שהתהליך

לא משתמש בהן בפועל. ?ישּור עם קוד לא נדרש האם אפשר לחסוך ק,.כן, בעזרת קישור דינמי

Page 5: זיכרון וירטואלי

5

פתרונות ראשוניים:

:לשתף.במקרים רבים רצים תהליכים שיכולים לשתף ספריות .בפועל, קוד הספריות משוכפל בזיכרון ?האם אפשר להימנע מהשכפול

.פתרונות אפשריים: ספריות משותפות, מנוהלות על ידי מ"ה

Page 6: זיכרון וירטואלי

6

זיכרון פיזי / לוגי

נפריד את הזיכרון הפיזי מהזיכרון הלוגי של התהליך.לצורך כך נדרש לתמיכת חומרה, ומערכת ההפעלה החומרה מספקת מנגנון בשםMMU לתרגום בין הכתובת הלוגית

לפיזית רכיב זה מנהל גם אספקטים אחרים של הזיכרון, כגון כל מערכת ה

cache.

Page 7: זיכרון וירטואלי

7

MMU = Memory Management Unit

MMU:נמצא במקום הבא

Logical addr.

MMU

Physical addr.

User Program Physical Memory

Page 8: זיכרון וירטואלי

8

טבלת הדפים

( צֹור אזורי זיכרון בגודל אחיד בשם דפים (.pagesנ, כלX -בתים )דף אחד( רציפים בזיכרון יקבלו מלת תרגום ב MMU. - מסגרות( עתה, נתאים דפים לוגיים לדפים פיזייםframes.)

Page offset

Page table

MMULogical address Physical address

Page

Frame offsetPage offsetPage offset

Page table

MMULogical address Physical address

Page

Frame offsetFrame offset

טבלת בעת החלפת הקשר, של התהליך עולה הדפים

למקום מוגדר מראש פונה MMUבזיכרון. ה

למקום זה.

Page 9: זיכרון וירטואלי

9

מערכת ההפעלה ודפדוף

:מבני נתונים של מערכת ההפעלה כוללים .)טבלת מסגרות: לכל מסגרת בזיכרון הפיזי: פנויה / מוקצת )ולמי.טבלת דפים לכל תהליך

Page 10: זיכרון וירטואלי

10

המיפוי

:2לדף זיכרון בגודל כמות הזיכרון הדרושb דרושים ,b.ביטים

F האות דוגמא:00101 = 5כתובת לוגית

001דף #: Offset: 01

תרגום:6 מתרגם למסגרת 1דף

110מסגרת #: Offset: 01

תוצאת התרגום: = 25כתובת פיזית

11001

ABCD

IJKL

EFGH

MNOP

5612

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

ABCD

IJKL

EFGH

MNOP

0

4

8

12

16

20

24

Page Table

ABCD

IJKL

EFGH

MNOP

ABCD

IJKL

EFGH

MNOP

5612

5612

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

ABCD

IJKL

EFGH

MNOP

0

4

8

12

16

20

24

Page Table

Page 11: זיכרון וירטואלי

11

Pagingדפדוף =

:מספרים :0.5גודל דף מקובלKb 8 עדKb. :מספר הדפיםsizeof mem / size of page

מעבדIntel 386 הוא המעבד הראשון של Intel -בסדרת ה x86 שתמך בדפדוף.

Page 12: זיכרון וירטואלי

12

swapping

חלק מהדיסק מוקדש ל - 'אחסון זמני' של דפים אשר כרגע אינםנמצאים בשימוש.

.זה מאפשר מצב בו גודל הזיכרון הפיזי גדול יותר מהזיכרון הלוגי

Page 13: זיכרון וירטואלי

13

swapping ו paging

.כשתהליך בביצוע מעלים את טבלת הדפים שלו לזיכרון

לכל רשומה בטבלת הדפים יש דגל: בצענוswap in.לדף או לא .אם הדגל מורם, הרי שניתן להמשיך בתרגום ולגשת לזיכרון אם לא, מ"ה מבצעתswap in ואולי גם ,swap out.כדי לפנות מסגרת

Page 14: זיכרון וירטואלי

14

page table(physical page

or disk address)

Memory (RAM)

Disk Storage

Valid

1

1

111

1

10

0

0

Virtual PageNumber

טבלת הדפים

Page 15: זיכרון וירטואלי

15

כיצד זה עובד?

כשניגשים לדף שאינו נמצא בזיכרון הראשי, נוצרת פסיקה בשםpage fault.

:מערכת ההפעלה ,תופסת את הפסיקה ,מעבירה את התהליך למצב המתנה מבצעתswapping,.מחזירה את התהליך לריצה

מערכת זיכרון המממשת מודל זה נקראתvirtual memory )זיכרון מדומה(

Page 16: זיכרון וירטואלי

16

הבהרות לגבי זיכרון מדומה

כל תהליך יכול להשתמש בזיכרון רציף של עדGB 4 אם( סיביות(.32המחשב הוא

כלומר שני תהליכים יכולים להתייחס לאותה כתובת לוגיתx אך זה ימופה ,לכתובות פיזיות שונות.

כמה מהRAM ? יכול להיות מוקדש לתהליך מסוים ברגע נתון 4לכאורהGB. 2למעשה, בחלונות למשל עדGB .2 מוקדשים למ"הGB אלה נשארים

.swap-outבזיכרון – לא עושים להם

Page 17: זיכרון וירטואלי

17

הבהרות לגבי זיכרון מדומה

4מרחב הכתובות הפיזי יכול להיות גדול יותר מGB . סיביות )על ידי שימוש ב 32הכתובת נשמרת על ידי יותר מ (double-

word . בגרסה מסוימת שלlinux סיביות ולכן המגבלה של 36, למשל, זה RAM +

swap space 64 = 16 * 4 היאGB.

.אך התועלת בכך היא רק בסביבה מרובת תהליכים ...

Page 18: זיכרון וירטואלי

18

הבהרות לגבי זיכרון מדומה

4האם יש טעם להרחיב את הזיכרון למעלGB ? לכאורה זה יכול לחסוךswapping כי מידע של מספר תהליכים יישמר

בזיכרון. 32בפועל זה לא יעבוד כי כל המערכת מוגבלת לשליחת כתובות ברוחב

.busסיביות. למשל לא ניתן לשלוח כתובת כזאת על ה סיביות.64מסקנה: רק במערכות

Page 19: זיכרון וירטואלי

19

Translation Lookaside Buffer (TLB)

TLBזיכרון מטמון של תרגומים משמש כ .TLB מכיל חומרה שמחפשת במקביל אחר רשומות תרגומים קיימים.

נשים לב שבהחלפת תהליכים, ה(TLB.)!צריך להימחק

TLB מהיר יותר מזיכרון רגיל, והחיפוש בו נעשה במחיר של גישה אחת.

אחוז הפעמים שגישה לזיכרון נפתרת באמצעות הTLB נקרא hit ratio.

Page 20: זיכרון וירטואלי

20

זמן גישה לזיכרון

:נחשב את זמן הגישה לזיכרון הממוצע בדרך הבאה

80% hit ratio

20 nanosec TLB search

100 nanosec mem access

effective access time = 0.8*120 + 0.2*220 = 140 nanosec מכאן:

האטה לעומת גישה בודדת. 40%כלומר

גישה לזיכרון-מטמון בו לא 20 לערך מהזיכרון, 100 גישה לטבלה, 100 = 220)מצאנו(

:אבל

נקבל:hit ratio 98%עבור

effective access time = 0.98 * 120 + 0.02*220 = 122 nanosec

האטה לעומת גישה אחת.22%כלומר

Page 21: זיכרון וירטואלי

21

בעיות...

כמה דפים להביא כשנוצרpage fault?ואילו

? )אילו דפים להוציא )כשצריך לפנות מקום

איך נמנע ממצב בו המעבד עסוק כל הזמן בהחלפת דפים

דּוש -- Zש ( ?thrashingוהתהליכים לא מתקדמים בריצתם )ד,

:שני תהליכים שצורכים מעט זיכרון רצים בו זמנית. חידה

? האם יש חשש לדשדוש