234267
Download
Skip this Video
Download Presentation
מבנה מחשבים ספרתיים 234267

Loading in 2 Seconds...

play fullscreen
1 / 40

מבנה מחשבים ספרתיים 234267 - PowerPoint PPT Presentation


  • 180 Views
  • Uploaded on

מבנה מחשבים ספרתיים 234267. זכרון וירטואלי מבוסס על תרגול של מורן גביש. זיכרון פיזי. תהליך 1. CPU. תהליך 2. תהליך 3. הבעייה. ישנה כמות נתונה ומוגבלת של זיכרון פיזי. איך נחלק אותו בין התהליכים השונים?. פתרון ראשון:. חלוקה שווה של הזיכרון בין התהליכים השונים. הבעייתיות בפתרון:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' מבנה מחשבים ספרתיים 234267' - arin


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
234267

מבנה מחשבים ספרתיים234267

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

מבוסס על תרגול של מורן גביש

234267 - January 2006

slide2

זיכרון פיזי

תהליך 1

CPU

תהליך 2

תהליך 3

הבעייה
  • ישנה כמות נתונה ומוגבלת של זיכרון פיזי. איך נחלק אותו בין התהליכים השונים?

234267 - January 2006

slide3
פתרון ראשון:
  • חלוקה שווה של הזיכרון בין התהליכים השונים.
  • הבעייתיותבפתרון:
  • תהליכים שדורשים הרבה זיכרון מצריכים הגדלת הבלוק (שמגביל מספר התהליכים האפשרי)
  • תהליכיםשדורשיםמעטזיכרוןמבזבזים את רוב הבלוק הגדול שהוקצה עבורם (שברור פנימי)
  • הקצאתהזיכרוןלאניתנתלשינויבזמןריצת התהליכים

234267 - January 2006

slide4
פתרון שני
  • הקצאת זיכרון תיעשה בקטעים, על פי בקשות התהליכים.
  • (דוגמה: Windows 3.x)
  • הבעייתיותבפתרון:
  • עקב הקצאה ושחרור קטעים בגדלים שונים, הזיכרון שבין הקטעים מתבזבז (שברור חיצוני)
  • ניצול יעיל של זיכרון מצריך הזזת קטעים ושיטות מיעון מסובכות

234267 - January 2006

slide5
פתרון שלישי - זיכרון וירטואלי
  • נפריד ביןהזכרון שהתכנית רואה – "המרחבהלוגי" (הווירטואלי)לבין המרחבהפיזי (הזיכרוןבפועלשלהמחשב).
  • בפתרוןזהבד"כ גם מקציםמקוםבזיכרוןהמשני (הדיסקהקשיח)שישמשכהרחבהלזיכרון הפיזיהקייםבמחשב.(swapping)

234267 - January 2006

slide6
מושגים

זיכרון פיזי – הזיכרון של המחשב.

  • מסגרת – הזיכרון הפיזי מחולק ליחידות שוותשנקראות מסגרות.
  • PFN(physical frame number) – מספר מסגרת במרחב הפיזי.
  • דף (page) – הזיכרון הלוגי של כל תהליך מחולק ליחידות שוות בגודל למסגרות. כל יחידה נקראת דף.
  • VPN(virtual page number) – מספר דף במרחב הלוגי.

זיכרון וירטואלי – מרחב זיכרון מדומה אליו ניגש תהליך.

swapping – ניצול הזיכרון המשני להרחבת מרחב הזכרון שבשימוש; מבטל את החובה כי כל תהליך ישהה בזיכרון הפיזי במהלך כל הריצה, ובפרט מאפשר להריץ תהליכים גדולים מגודל הזיכרון הפיזי.

234267 - January 2006

slide7
יתרונות הזיכרון הווירטואלי
  • אפשרות להגדיל את הזיכרון השמיש מעבר לגודל הזיכרון הפיזי, בעזרת swapping.
  • אין צורך ב-relocation – לכל תוכנית מרחב זיכרון וירטואלי נפרד (מתחילה מכתובת 0 בזיכרון).
  • שיתוף זיכרון קל – יכולים להחזיק דף אחד בזיכרון הפיזי שאליו יצביעו רשומות PTE של תהליכים שונים.
    • מקרה פרטי: תמיכה יעילה בריבוי תהליכים (fork).
  • הגנה (הפרדה) – בין מרחבי זיכרון של תהליכים שונים.

234267 - January 2006

slide8
מבנה הזיכרון הווירטואלי

0x00000

CPU

234267 - January 2006

slide9
מבנה הזיכרון הפיזי
  • הזיכרוןהפיזימחולק ל-2 חלקים:
  • "החלקהעליון" מכילטבלאותתרגוםעבורהמרחביםהווירטואלייםשל כלהתהליכים.
  • "החלקהתחתון" מכיל אתהמסגרותהמכילותדפי הזיכרוןשל התהליכים.
  • כלמסגרתיכולהלהכילדףכלשהו, ללאסדרמסוים.
  • גודלמסגרתבזיכרוןהפיזי = גודלדףבזיכרוןהווירטואלי.

234267 - January 2006

slide10

PTE

PTE

PTE

מבנה הזיכרון הפיזי

זיכרון משני

(דיסק)

זיכרון ראשי

PT

1

2

PT

PTBR

3

1

1

2

1

2

2

3

3

2

3

234267 - January 2006

slide11
מהלך גישה לכתובת וירטואלית
  • ה-CPUממען רק לפי הכתובות הווירטואליות של התהליך, ולכן כדי לגשת לנתון בזיכרון הפיזי יש צורך לתרגם את הכתובת הווירטואלית לכתובת פיזית.

VPN (Virtual Page Number) הוא מספרדףוירטואליבמרחב שלהתהליך.

Offset – היסט מתחילתהדףלביתאליורוציםלגשת.

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

234267 - January 2006

slide12
מבנה טבלת תרגום

כלכניסהנקראת PTE

(Page Table Entry)

עבורכלדףוירטואליבמרחבהתהליך ישכניסהאחתבטבלתהתרגוםשלאותו תהליך. כלומר, לפי ה-VPN בכתובת הווירטואלית מוצאים אתכניסת ה-PTE המתאימה בטבלת התרגום.

234267 - January 2006

slide13
מבנה טבלת תרגום

PTBR

במערכת יש כמה תהליכים, אך בכל רגע נתון יש רק תהליך אחד (נקרא "התהליך הפעיל") שרץ כרגע במעבד. לתחילת טבלת התרגום של התהליך הפעיל מצביע ה-PTBR (Page Table Base

Register).במקרה של החלפת תהליכים, יש לשנות את ה-PTBR להצביע על תחילת טבלת התרגום של התהליך החדש.

234267 - January 2006

slide14

חישוב כתובת (פיסית) הכניסה המתאימה בטבלת התרגום:

PTE_Address = [PTBR] + VPN*(Size Of One PTE)

234267 - January 2006

slide15
מבנה כניסה בטבלת התרגום

שדה PFN - זהומספרהמסגרתבהיושבהדףבזיכרוןהפיזי.

234267 - January 2006

slide16
מבנה כניסה בטבלת התרגום

סיבית Valid – מציינת האם הדף נמצא בזיכרון הפיזי. (אם לא, ייתכן שהדף נמצא בזכרון המשני, או שהכתובת לא חוקית.)

מדיניות הבאת הדפים היא Paging on Demand, כלומר רק כשיש דרישה מביאים את הדף המתאים לזיכרון הפיזי.

אם הדף לא קיים בזיכרון הפיזי, בפנייה אליו תקרה פסיקת Page Fault (פנייה לכתובת וירטואלית שאין עבורה מיפוי לכתובת פיזית). הפסיקה מטופלת ע"י מערכת ההפעלה. אם הדף המבוקש נמצא בדיסק, המערכת צריכה לטעון אותו לאחת המסגרות הפנויות בזיכרון הפיזי. אם אין מסגרת פנויה אז יש לפנות את אחד הדפים, לעדכן את הדף שהוצא בזיכרון המשני, ולהכניס את הדף החדש למסגרת.

הפינוי נעשה לפי מדיניות LRU.

234267 - January 2006

slide17
מבנה כניסה בטבלת התרגום

סיבית Modified – לפי מדיניות כתיבה Write-Back מעדכנים את תוכן הדף בזיכרון המשני רק כאשר מפנים אותו מהזיכרון הפיזי. הסיבית M מציינת האם הדף עודכן אחרי הטעינה. אם כן, בפינוי הדף נעדכן את תוכנו בדיסק.

234267 - January 2006

slide18
תרגום כתובת וירטואלית לפיזית
  • שדה PFN – זהו מספרהמסגרתבהיושבהדףבזיכרוןהפיזי.
  • שדה offset – אותו שדהה- offset שלהכתובתהוירטואלית.
  • בסךהכלישנן 2גישותלזיכרוןהפיזי – אחת לטבלתהתרגום, ואחת לנתוןעצמו.
  • במידהוישגםזיכרוןמטמון, לאחרמציאתהכתובתהפיזיתנחלקאותהלשדות
  • tag, set, disp, ונחפשאתהנתוןבמטמוןכרגיל, כלומר, נחסוךאתהגישההשניה.

234267 - January 2006

slide19
דוגמא של מכונה עם זיכרון מדומה
  • הנחות :
  • • למכונה אין cache
  • • טבלת הדפים נמצאת בזיכרון הראשי
  • • כתובת בסיס של טבלת הדפים נתונה ברגיסטר PTBR=0x1000
  • • תוכן הכתובת 00201200 הוא 940001C0.
  • • כתובת וירטואלית באורך 30 ביטים
  • • כתובת פיזית באורך 32 ביטים
  • • כניסה בטבלת הדפים מכילה את המידע הבא (PTE):

תזכורת: האינדקס בטבלת התרגום הנו מספר הדף המדומה.

234267 - January 2006

slide20
דוגמא:
  • תוכנית קוראת משתנה מסוג DW (4 בתים)הנמצא בכתובת מדומה x100100A00.
  • 1. מה היא הכתובת הפיזית של המשתנה ?
  • 2. כמה גישות לזיכרון דרוש כדי לקרוא את הערך של המשתנה ?
  • מציאתהכתובתהפיזיתשלהמשתנה:
    • תרגום הכתובת לבינארי:

234267 - January 2006

slide21
דוגמא:
  • תוכנית קוראת משתנה מסוג DW (4 בתים)הנמצא בכתובת מדומה x100100A00.
  • 1. מה היא הכתובת הפיזית של המשתנה ?
  • 2. כמה גישות לזיכרון דרוש כדי לקרוא את הערך של המשתנה ?
  • מציאתהכתובתהפיזיתשלהמשתנה:
    • תרגום הכתובת לבינארי:

VPN

offset

גודלושלשדהה-PFN הוא 23סיביות.

גודלה של כתובת פיזית הינו 32 סיביות, והיא מחולקת ל-PFN ו-offest.

לכן גודלו של שדה ה-offset הוא #offset=32-23=9 bit

234267 - January 2006

slide22
מציאת כתובת ה- PTE:

234267 - January 2006

slide23

PT

PT

PTE

PTE

940001C0

1

2

2

גישהראשונהלזיכרוןלכתובתשל ה PTE.

תוכן הכתובת 00201200הוא 940001C0 (נתון).

זיכרון ראשי

זיכרון משני

דיסק

1

2

PTBR

3

1

00201200

1

2

2

3

3

234267 - January 2006

pfn pte 940001c0
מציאת ה- PFN:תרגום תוכן ה-PTE, 940001C0 לבינארי

234267 - January 2006

slide25
היות ו- V=1 הדף נמצא בזכרון הפיזי, וניתן לגשת אליו.כתובת הדף בזכרון הפיזי היא:

234267 - January 2006

slide26

PT

PT

PTE

PTE

940001C0

1

2

2

גישה שניה לזיכרון לכתובת 000380A0 – להבאת הנתון

זיכרון ראשי

זיכרון משני

דיסק

1

2

PTBR

3

1

00201200

1

2

2

3

3

000380A0

234267 - January 2006

slide27
שאלה 1
  • נתוןמחשבעםזיכרוןפיזי, זיכרוןמדומהומטמון.
  • מרחבהכתובותהמדומהבגודל 2n.
  • גודל הזיכרון הפיזי 2m בתים. לכל בית יש כתובת.
  • גודל דף בזיכרון המדומה הוא 2q בתים.
  • גודל בלוק של המטמון הוא 2bבתים.
  • המטמון יכול להכיל 2c בלוקים.
  • שיטת העבודה של המטמון - Direct mapped.

234267 - January 2006

slide28

א. תארכיצדנראיתכתובתמדומהבמחשבזה.ב. תארכיצדנראיתכתובתפיזיתבמחשבזה.ג. איזה שיפור במהירות המחשב ניתן להשיג אם מתכנן המחשב ידאג לכך שיתקיים q≥b+c ?

  • פתרון:
  • א+ב, מרחב הכתובת המדומה בגודל 2n, לכן אורך הכתובת הוירטואלית הוא n ביטים.
  • גודל הזכרון הפיסי הוא 2m ובכל כתובת יש בית, לכן אורך הכתובת הפיסית הוא m ביטים.
  • גודל דף בזכרון המדומה הוא 2q בתים, לכן אורך שדה ה-offsetגם בכתובת המדומה וגם בכתובת הפיסית (כי ה-offset המדומה שווה ל-offset הפיסי) הוא q ביטים.

234267 - January 2006

slide30
גודל בלוק במטמון הוא 2b בתים, לכן אורך שדה ה-displacement בכתובת פיסית הוא b ביטים. המטמון יכול להכיל 2c בלוקים ופועל בשיטת Direct mapped. לכן אורך שדה ה-set בכתובת פיסית הוא c ביטים.
  • חלוקת הכתובת לשדות היא:

234267 - January 2006

slide31
ג. אם מתקיים אי שוויון q≥b+c אז ה-offset (שדה q) מכיל בתוכו את השדות set ו- disp (b+c):
  • יתכן ביצוע של שני תהליכים במקביל: תרגום כתובת מדומה לפיזית וחיפוש נתון במטמון.
  •  יתקבלמצבבונידעאתמיקומושלהנתוןהמבוקשבמטמוןעודלפניתרגוםמלאשלכתובתו הוירטואליתלפיזית.
  •  ניתןיהיהלהשתמשבנתוןשהוצאמהמטמוןעודלפניסיוםתרגוםכתובתוהמדומה (שיפור מהירותהמחשב).
  • הבעיה שעלולה להיווצר: לא ניתן לדעת אם הנתון שייך לכתובת הפיסית שתתקבל לאחר התרגום של הכתובת המדומה או לכתובת פיסית אחרת עקב קבלת tag-ים שונים.

234267 - January 2006

slide32
שאלה 2
  • במחשב מסוים יש זיכרון מדומה של 232 כתובות.
  • גודל דף של הזיכרון המדומה 213 בתים.
  • מבנה הכניסה בטבלת הדפים:

234267 - January 2006

slide33
מהוגודלהזיכרוןהפיזי (לכלהיותר)?מהוגודלטבלתהדפים?
    • גודל שדה ה-PFN הוא 12 ביטים ולכן כמות המסגרות בזיכרון הראשי היא לכל היותר 212. הגודל של כל דף וירטואלי (ולכן גם של מסגרת) הוא 213 בתים, לכן מתקבל שגודל הזיכרון הפיסי הוא לכל היותר 212*213=225 בתים.
    • גודל מרחב הזיכרון המדומה הוא 232 כתובות (בית בכל כתובת) וגודל הדף הינו 213. ישנם 232/213=219 דפים וירטואליים ולכן אותה כמות כניסות בטבלת הדפים.
  • למציאת אורך הכניסה בטבלת הדפים (אורך כל PTE) נסכום את אורך השדות: 1+1+2+12=16 סיביות, כלומר 2 בתים. גודל טבלת הדפים הוא 2*219=220 בתים.

234267 - January 2006

slide34
כמהתהליכיםיכוליםלרוץבוזמניתעלגביהמעבד?כמהתהליכיםיכוליםלרוץבוזמניתעלגביהמעבד?
  • מספר התהליכים שיכולים לרוץ בזיכרון בו זמנית הוא לכל היותר כמספר טבלאות התרגום פחות אחד (כדי שיהיה גם מקום בזיכרון לדפים).

לכל היותר 31 תהליכים יכולים לרוץ במקביל.

234267 - January 2006

slide35
בניסיון לחסוך זיכרון פיזי הנדרש ע"י ה-PTהוחלט להחזיק טבלה בה יש כניסה לכל מסגרת פיזית. אילו שדות צריכה להכיל טבלה כזו?
  • נחזיק טבלת תרגום הפוכה, כלומר לכל מסגרת בזיכרון הפיזי נחזיק את השדות: VPN, Valid, Modified. כמו כן נחזיק מזהה תהליך (PID) כי דף מספר 2 (למשל) יכול להיות שייך לתהליך א\' או לתהליך ב\'.

234267 - January 2006

slide36
בהנחה שגודל כניסה חייב להיות חזקה של 2, כמה דפים פיזיים נצטרך כדי להחזיק את כל הטבלה ? (של הסעיף הקודם)
  • ישנם 219 דפים ווירטואליים לכל תהליך, כלומר דרושים 19 ביטים לשדה VPN, ביט אחד ל- Valid, ביט אחד ל- Modified ובכדי להשלים לחזקה שלמה של 2 נחזיק 11 ביטים עבור מזהה התהליך. גודל הכניסה בטבלה החדשה יהיה 32 ביטים = 4 בתים.

מספר הכניסות הוא כמספר המסגרות הפיזיות.יש 212 מסגרות פיזיות, גודל כל כניסה 4 בתים ולכן גודל הטבלה החדשה 4*212=214בתים.

234267 - January 2006

slide37
מה היתרונות ואילו בעיות צפויות עם מימוש זה?

היתרון בטבלה החדשה הוא חסכון במקום. גודל כל דף וירטואלי הוא 213 בתים, גודל הטבלה החדשה הוא 214 ולכן הטבלה תתפוס רק 214/213=2 מסגרות בזיכרון.

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

234267 - January 2006

backups
backups

234267 - January 2006

slide39
רשימת ראשי תיבות
  • PFN(Physical Frame Number) - אחת המסגרות בזיכרון הפיזי, שיכולה להכיל דף וירטואלי.
  • VPN (Virtual Page Number)- מספר הדףהוירטואלישלתהליךמסוים.
  • Offset - כמהצריךלקפוץ מתחילתהדףעדהמקוםהמסויםאליורוציםלגשתבדף.
  • PT (page table) – טבלה שמקשרת בין מספר דף וירטואלי (VPN) לבין הסטטוס והמיקום שלו.
  • PTE (page table entry) – שורה ב- PT
  • PTBR (Page Table Base Register) – רגיסטר שמצביע על טבלת הדפים של התהליך שרץ כרגע

234267 - January 2006

ad