os - memory Flashcards

1
Q

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

A

בחומרה ישנם שני אוגרים
- limit, שאליו יטען גודל המחיצה של התהליך ו
-base, שאליו יטען המקום הרצוי בתוך המחיצה.

על החומרה לוודא שהחישוב אינו חורג מגבולות המחיצה של התהליך.
הרכיב שאחראי לתרגום המקומות הווירטואליים הוא ה-Memory Management Unit (MMU)

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

במקרה של התייחסות לכתובת חוקית, יתווסף לכתובת הווירטואלית הערך של
האוגר base ,והתוצאה המתקבלת תהיה הכתובת הפיזית.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

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

A

הקצאת שטחי זיכרון פנויים באמצעות מפת סיביות (bits-map)

הקצאת שטחי זיכרון פנויים באמצעות רשימות מקושרות (linked lists)

Quick Fit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

הקצאת שטחי זיכרון פנויים באמצעות מפת סיביות (bits-map):

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

הקצאת שטחי זיכרון פנויים באמצעות רשימות מקושרות (linked lists)

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

הקצאת שטחי זיכרון פנויים באמצעות Quick Fit

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

אלגוריתמים להקצאת שטח זיכרון פנוי

A

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

Next Fit: דומה ל-First Fit, רק שבמקום להתחיל כל פעם מתחילת הרשימה, ממשיכים מהמקום ממנו הפסקנו בסריקה הקודמת.
הוא נוטה לפצל את השטח הפנוי בסוף הזיכרון, ולכן ייתכן שבסופו של דבר
אלגוריתם זה ידרוש את הביצוע של פעולת הציפוף )compaction( יותר פעמים

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

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

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

A

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

מרחב הכתובות של התהליך מחולק לדפים בגודל קבוע. המיפוי של הדפים השמור במבנה נתונים נקרא טבלת דפים (page table), ששורותיה מכילות מידע על הדפים כגון האם הדף ממופה למסגרת זיכרון, לאיזו מסגרת וכו’.


How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

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

A

מספר הדף ולהיסט בתוך הדף
מספר הדף משמש כאינדקס של שורה בטבלת הדפים

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

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

A

מספר המסגרת בזיכרון ומערכו של ההיסט בתוך המסגרת עצמה

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Translation Lookaside Buffer (TLB)

A

הוא סוג של זיכרון מטמון, בו מוחזקת רק קבוצה קטנה של שורות מטבלת דפים. שורות ב-TLB צריכות להכיל שדה עם מספר דף כדי לציין לאיזה דף מתייחס המידע בשורה (שורות אלה אינן מכילות שדה של reference bit). מדיניות החלפת הדפים ב-TLB היא LRU, כך שהחיפוש נעשה בצורה מקבילית ולכן מהירה.

זיכרון אסוציאטיבי

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

8 אלגוריתמים להחלפת דפים כולל פירוט

A

Not Recently Used (NRU): נעיף דפים לפי ההעדפה הבאה (לפי ה-reference bit וה-modified bit), כך שהאלגוריתם בוחר באופן רנדומלי דף מקבוצת הסיווג הגבוהה ביותר שקיימת: 
א. לא הייתה התייחסות אל הדף לאחרונה וגם לא השתנה לאחרונה.
ב. לא הייתה התייחסות אל הדף לאחרונה אך השתנה לאחרונה.
ג. הייתה התייחסות אל הדף לאחרונה אך הוא לא השתנה.
ד. הייתה התייחסות אל הדף לאחרונה והוא גם השתנה לאחרונה.
האלגוריתם קל למימוש, וביצועיו סבירים (אך אינם אופטימליים).

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

Second Chance: שדרוג של FIFO, מהבחינה שבכל פעם שהדף מגיע לראש התור, אם סיבית ההתייחסות שלו דלוקה נכבה אותה ונכניס אותו לסוף התור. אם היא כבויה אז נוכל להעיף את הדף.

Clock Page Replacement: שינוי במבנה הנתונים (מעבר לרשימה מעגלית) של אלגוריתם הזדמנות שנייה, מה שגורם לשיפור בביצועים שלו, כיוון שאין צורך להעביר דפים לסוף התור. קיימים שני מצביעים: האחד מצביע אל הדף הבא שנבדק לפינוי, שבודק אם סיבית ההתייחסות שלו היא 0 או 1 (ופועל כמו באלגוריתם הזדמנות שנייה). המצביע השני מאפס את סיבית ההתייחסות (paging daemons).

Least Recently Used (LRU): זורק את הדף שהיה לא בשימוש בזמן הארוך ביותר. אלגוריתם זה הוא מצוין אך יקר מאוד למימוש, כיוון שיש צורך בעדכון הרשימה בכל גישה לזיכרון, ולכן לא משתמשים בו בצורתו הטהורה.

Aging: לכל דף קיים מונה המורכב ממספר מסוים של ביטים. בכל פרק זמן המוגדר מראש, מתבצע למונה shift right. הביט הימני ביותר נהיה 1 אם הדף היה בשימוש בפרק הזמן המוגדר, ונהיה 0 הוא לא. בעת פסיקת דף, הדף עם המונה הנמוך ביותר הוא זה שנמחק. כאשר יש שני דפים עם אותו ערך של מונה, האלגוריתם בוחר אחד מהם באקראי. אלגוריתם יעיל שנותן ערך קרוב לאלגוריתם LRU.

Working Set (WS): דומה ל-NRU רק שעבור כל דף נשמר בנוסף גם מועד הפנייה האחרון אליו. אם סיבית ההתייחסות היא 0, הדף שיצר הוא דף שגדול מ- מסוים המוגדר במערכת. אם עבור כל דף מתקיים , יוצא הדף שה-age שלו הוא הגדול ביותר. אלגוריתם זה הוא יקר למימוש.

WSClock: אותו אלגוריתם של WS, רק שהרשימה מוצגת בתור רשימה מעגלית. דף שעבורו אך סיבית ההתייחסות שלו היא 1, נחליף את ה-age שלו לזמן הנוכחי ונכבה את סיבית ההתייחסות שלו. אלגוריתם זה הוא טוב ויעיל.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

מדיניות החלפה של דפים - מדינות לוקלית

A

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

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

מדיניות החלפה של דפים - מדינות גלובלית

A

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

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

ניהול כמות הקצאת המסגרות על ידי אלגוריתם Page Fault Frequency (PFF)

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

קביעת גודל הדף - שיקולים בעד דפים קטנים

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

קביעת גודל הדף - שיקולים בעד דפים גדולים

A

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

17
Q

ניתוח מתמטי לקביעת גודל הדף
יהיו:
s- הגודל של תהליך ממוצע
p- גודל הדף
e- גודל של שורה בטבלת הדפים של התהליך

A

המספר המשוער של דפים שהתהליך זקוק להם יהיה s/p, הגודל של טבלת הדפים יהיה se/p והבזבוז עקב הריסוק הפנימי בדף האחרון של התהליך יהיה p/2.


לכן, התקורה הכוללת של השימוש בזיכרון הווירטואלי תהיה:

overhead(p)=se/p + p/2

רצה למזער את התקורה כפונקציה של p. לאחר גזירה נקבל שגודל הדף הוא

p=(2se)^0.5

18
Q

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

כיצד נמנע זאת?

A

על ידי רק דפים לקריאה בלבד ניתנים לשימוש משותף.

19
Q

copy on write

A

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


20
Q

דפים לשימוש משותף של כמה תהליכים

A

כתיבה בלבד
קריאה עם copy on write
ניתן לפנות דפים אלה רק כאשר התהליך האחרון מסיים להשתמש בהם

21
Q

ביצוע פסיקות דף

A
  1. בעקבות פסיקת דף מתבצע trap לגרעין המערכת. המונה counter program נשמר על
    מחסנית.

2 .שגרת קוד (שכתובה באסמבלר בשביל מהירות) שומרת רגיסטרים כלליים ומפעילה
את שגרת הטיפול בפסיקות של מערכת ההפעלה.

3 .בעקבות הפעלתה של השגרה לטיפול בפסיקות, מערכת ההפעלה מתחילה את
הטיפול בפסיקת דף. היא שולפת הוראה שגרמה לפסיקת דף כדי לברר באיזה דף
מדובר.

4 .מערכת ההפעלה מבצעת בדיקת תקינות של הכתובת ובוחנת את ההרשאות של הדף.
אם הבדיקות נכשלות, מערכת ההפעלה שולחת אות לתהליך או “הורגת” אותו,
ומתבצעת החלפת תוכן לתהליך אחר.

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

6 .אם מסגרת פנויה הייתה קיימת בשלב 5 או אם נמצאה מסגרת פנויה על ידי
אלגוריתם להחלפת דפים, מתבצע חישוב של כתובת הדיסק של הדף שגרם לפסיקת
דף, ולאחר מכן מתוזמנת בקשת קריאה של הדף מ-area swapping .התהליך מושהה
עד לסיום הקריאה ומתבצעת החלפת תוכן לתהליך אחר.
למעשה, התהליך יושהה ועם סיום הכתיבה תתרחש פסיקת חומרה.

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

8 .ההוראה שגרמה לפסיקת דף משוחזרת.

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

10 .שגרת האסמבלר מבצעת שחזור אוגרים וחוזרת למצב משתמש להמשך ביצוע
תהליכים.

22
Q

שיטת החלוקה לקטעים (segmentation

A

בשיטה זו לניהול זיכרון, מרחב הזיכרון המדומה מחולק לקטעים. הקטעים יכולים
להיות בגדלים שונים. הכתובת המדומה מורכבת משני חלקים: מספר הסגמנט וההיסט
של יחידת ההתייחסות בסגמנט. מיפוי חלקי המרחב המדומה של תהליך לקטעים
מוחזק במבנה נתונים המכונה טבלת קטעים (table segment .

23
Q

הבדלים בין שיטת הדפדוף לשיטת החלוקה למקטעים

A

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


24
Q
  • כתובת וירטואלית כוללת bits 32
  • יחידות המען הקטנות ביותר הן בגודל byte 1
  • גודל כל דף הוא kb 4
  • גודל שורה של טבלת דפים הוא bytes 4

מה גודל טבלת הדפים?

A

כתובת בת 32 סיביות יכולה לפנות ל-
2^32 כתובות

גודל של מילת זיכרון הוא בית אחד, אזי גודל המרחב הווירטואלי הוא
4GB

מכיוון שגודל הדף הוא kb 4

אזי כמות הדפים שאליהם מתחלק המרחב הווירטואלי היא
4Gb/4kb = 232bytes / 212bytes = 220 pages

זהו גם מספר השורות של טבלת דפים של תהליך.

מכיוון שגודל שורה בטבלת הדפים
bytes = 4 Mb :
יהיה כולה הדפים טבלת של הגודל אזי
, 4bytes הוא 22 *4
bytes = 2 20 .2

מכאן שלא ניתן להחזיק את טבלת הדפים בדף זיכרון בגודל kb 4

25
Q

המבנה של שורה בטבלת דפים

A

מלבד המידע המצביע על הדף והמסגרת המתאימים למען מסוים, טבלת הדפים מספקת
מידע חיוני נוסף על מצבם של הדפים. להלן תיאור השדות של טבלת דפים גנרית:

  • מספר מסגרת הזיכרון (number frame page – (אם הדף נמצא בזיכרון הראשי,
    השדה מצביע על המקום שאליו ממופה הדף.
  • סיבית הנוכחות (bit absent/present – (נותנת אינדיקציה למקום הימצאותו של
    הדף: בזיכרון הראשי או בזיכרון המשני.
  • שדה ההגנה (field protection – (מציין מהן ההרשאות של הדף. כך למשל ניתן לציין
    כי דפים מסוימים של הקוד מוגנים מפני כתיבה, ואז כל ניסיון לשנות את הקוד
    יגרום לפסיקת חומרה.
  • סיבית ההתייחסות (bit reference – (מציינת שהייתה פנייה לדף. מעת לעת מערכת
    ההפעלה נאלצת להוציא דפים שלא הייתה אליהם התייחסות בזמן האחרון, כדי
    להקצות מסגרות זיכרון שהם תפסו לדפים אחרים. בסעיף 4.3 נלמד על אלגוריתמים
    שעושים שימוש בסיבית זו.
  • סיבית השינוי (bit modified – (משמשת לאינדיקציה על שינוי תוכן של דף. אם תוכן
    הדף שונה, הוצאתו מהזיכרון מצריכה את כתיבתו לדיסק. לכן, אם צריך לפנות דף
    ששונה מזיכרון, נעשה זאת כאופציה אחרונה. גם סיבית זו נחוצה לאלגוריתמים
    לפינוי דפים מזיכרון (שמירתן בדיסק בקובץ החלפה).
  • סיבית השימוש בזיכרון מטמון (enabled/disabled caching – (שימושית רק
    בארכיטקטורות שבהן התקני קלט/פלט משתמשים במרחב הכתובות של הזיכרון
    הראשי (בפרק 5 נדון בהרחבה גם בארכיטקטורות שונות). דפים הממופים לכתובות
    של התקני קלט/פלט בזיכרון הראשי צריכים לבטל את האפשרות של caching ,כדי
    לא לקבל תוכן ישן שהיה שמור בזיכרון המטמון. אם בדפים אלו תבוטל האפשרות
    להטמנה, הדבר יגרום לקבלת תכנים עדכניים.
26
Q

טבלת דפים למרחבי זיכרון גדולים

A

טבלת דפים שכבתית (table page multilevel)
טבלת דפים מהופכת (table page inverted)

27
Q

טבלת דפים
שכבתית

A

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

28
Q

טבלת דפים
מהופכת

A

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

29
Q

קבוצת
העבודה

A

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

30
Q

שחזור הוראות מכונה לאחר פסיקת דף

A

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

31
Q

שיטת swapping area הבסיסית

A

בשיטה זו להחזקה של דפים מיועד להחזקתם אזור בדיסק המכונה area swapping .
שטח האזור מנוהל באמצעות רשימה משורשרת של שטחים פנויים, בדומה לניהול של
שטחים פנויים בשיטת מחיצות ניידות. לכל תהליך מוקצים שטחים רציפים כגודל של
תהליך. לכן כדי להתייחס לדף מסוים, צריך רק לדעת את מיקומו של השטח המוקצה
לתהליך בתוך ה-area swapping) ראו איור (a (29-3 .(
מודיפיקציה אחת של השיטה מנהלת אזורים נפרדים ל-data, code ו-stack של תהליכים
כדי להתמודד טוב יותר עם שינויים בגודל של תהליכים.

32
Q

swapping area השיטה הדינאמית

A

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

33
Q

אלגוריתם אופטימלי להחלפת הדפים

A

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

34
Q

עקרון הלוקאליות

A

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

35
Q

חיפוש בטבלת דפים מהופכת באצעות פונקצית ערבול

A

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

36
Q

swap-out process

A

process that it’s memory is in the secondary memory