מערכות הפעלה תרגול 12 – ניהול זיכרון ב-linux : המשך

28
הההההה ההההה ההההה12 ההההה ההההההה-Linux : הההה

Post on 21-Dec-2015

283 views

Category:

Documents


14 download

TRANSCRIPT

מערכות הפעלה

בניהול זיכרון – 12תרגול -Linux : המשך

מערכות הפעלה - תרגול 12 2(c) 2003 ארז חדד

(1תוכן התרגול ) המסגרות טבלת הדפים מטמון

? צורך בו יש למה? למטמון מגיעים דפים איך הדפים במטמון ומבנים שדותדוגמה

דפים פינוידירוג פעילות של דפים בזיכרוןפינוי בפועל של זיכרוןפינוי דפים ממרחבי זיכרון

מערכות הפעלה - תרגול 12 3(c) 2003 ארז חדד

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

של המחשב המערך נקראmem_map וכל כניסה היא מסוג struct page

קובץ גרעיןinclude/linux/mm.h:מספר שדות חשובים בכל כניסה

count( מונה שימוש – reference counter של הדף שבמסגרת: כמה ), 0מרחבי זיכרון מצביעים לדף זה כשהוא בזיכרון. אם ערך המונה הוא

המסגרת פנויהmapping, index, next_hash, pprev_hash ,משמשים במטמון הדפים –

כפי שנראה מידlruמשמש למנגנון פינוי הדפים. פרטים בהמשך – flags:דגלים המתארים את מצב הדף שבמסגרת, כגון –

PG_locked מציין שהמסגרת נעולה עקב פעולת פינוי/הבאת דף שעדיין לא – הסתיימה

PG_referenced, PG_active, PG_lru, PG_dirty משמשים למנגנון פינוי –הדפים. פרטים בהמשך

מערכות הפעלה - תרגול 12 4(c) 2003 ארז חדד

מספר מסגרת

countflagslrunext_hash

pprev_hash

mappingindex

..

1295--RDNULLNULLNULL

..

54394ALD

..

112340--NULLNULL

..

454421LDRNULLNULL

..

934212LR

..

swap1מאגר דפדוף דיסקים swap2מאגר דפדוף

bin/ls/קובץ home/eli/file1/קובץ

מטמוןהדפדוף

טבלת המסגרות

מסגרתגרעין

אוביקטניהולקובץ

flags:R - PG_referencedD - PG_dirtyA - PG_activeL - PG_lru

מערכות הפעלה - תרגול 12 5(c) 2003 ארז חדד

מטמון הדפים – למה יש בו צורך?:נסתכל על המצב האפשרי הבא

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

( ?מתי נסמן שהדף לא בזיכרוןpresent = 0)בטבלת הדפים אם לפני הפינוי בפועל, ואז 1.

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

לפי הכתובת במאגר הדפדוף. >= המערכת עוד לא הספיקה לכתוב את הדף למאגר הדפדוף נתונים לא מעודכנים ואף יתכן זבל(לא נכוןהדף שנקרא ע“י התהליך(

אם אחרי הפינוי בפועל, ואז2..מתחילים לפנות את הדףהתהליך ניגש לדף , הpresent = 1 .עדיין הדף פונה ודף אחר נטען לאותה מסגרת>= גישה לא חוקית ! התהליך ניגש למסגרת המצוינת בטבלת הדפים

מערכות הפעלה - תרגול 12 6(c) 2003 ארז חדד

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

מ/לזיכרון הראשי! ( מטמון הדפיםPage Cache) הוא המנגנון המרכזי

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

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

מערכות הפעלה - תרגול 12 7(c) 2003 ארז חדד

מטמון הדפים – מיפוי דף לזיכרון משני

:דף יכול להכיל סוגים שונים של מידעקוד מתוכנית טעונה, נתונים מקובץ נתוניםקטע של קובץ :

דף כזה נקרא( ממופה לקובץfile mapped – )מפונה לקובץ ממנו נטעןדף זיכרון של תהליך( שנשמר בדיסק במאגר דפדוף כלשהו swap area)

דף כזה נקרא( ממופה אנונימיanonymous mapped -) מפונה למאגרדפדוף.

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

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

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

מערכות הפעלה - תרגול 12 8(c) 2003 ארז חדד

hash tableמטמון הדפים – מטמון הדפים מכילhash table( המתרגם צירוף של mapping+index )

של indexלכתובת מסגרת )אם יש כזו( המכילה את הדף במיקום .mappingהאובייקט

כל המסגרות שמתאימות לאותוhash מקושרות ברשימה כפולה ברשומת המסגרת.pprev_hash ו-next_hashמעגלית דרך השדות

-לhash tableיש תפקיד מרכזי במנגנון הדפדוף, כפי שנראה בהמשך הפונקציות/מאקרו הבאות, המוגדרות בקבצי הגרעיןmm/filemap.c

:hash table, קשורות ל-include/linux/pagemap.hו-page_hash)(-פונקצית ה – hashfind_get_page)( מקבלת – mapping+index ומחזירה מצביע למסגרת

אם אין(NULLהמכילה את הדף המתאים )או add_to_page_cache)( )הוספת מסגרת + מיקום בדיסק )במגירה או בקובץ –

hash-tableלמטמון וכך גם ל-

מערכות הפעלה - תרגול 12 9(c) 2003 ארז חדד

מטמון הדפים – מוני שימוש שדה( מבחינת מונה השימוש של מסגרתcount או )

(, מטמון הדפים נחשב swap_mapמגירה )מונה כמרחב זיכרון נפרד המשתמש בדף המאוחסן בה

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

המסגרת או המגירה מהמטמון-המטרה: למנוע שיבוש במיפוי הhash-table באמצעות

הקצאה מחדש של המסגרת/מגירה עד להוצאת הדף מהמטמון

מערכות הפעלה - תרגול 12 10(c) 2003 ארז חדד

הקשר בין מסגרת למגירה הקשר בין מסגרת ומגירה, המכילות את אותו דף ממופה

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

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

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

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

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

את קיום הקשר(כאשר הקשר ניתק, המסגרת מוצאת ממטמון הדפים

)וגם המגירה )מונה השיתוף של המגירה מוקטן..

מערכות הפעלה - תרגול 12 11(c) 2003 ארז חדד

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

(1 של המסגרת מוגדל ב- countנמצא הדף )ה- מוקצית מגרה במאגר הדפדוף שעליה יעבר הדף

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

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

מערכות הפעלה - תרגול 12 12(c) 2003 ארז חדד

(1מטמון הדפים – דוגמה) הרלוונטיות של מטמון הדפים גדלה עוד יותר כאשר

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

ממופה אנונימי למסגרתS1-ו S2 הם שני מרחבי זיכרון שלהם דף משותף P המצוי ,

( במסגרת בזיכרון. 1בתחילה )שלב PC.הינו מטמון הדפים הערך הכתוב בתרשים במשבצת של המסגרת שלP ושל

או count בכל השלבים הינו מונה השיתוף )Pהמגירה של swap_map)

מערכות הפעלה - תרגול 12 13(c) 2003 ארז חדד

(2מטמון הדפים – דוגמה) במסגרת פינוי דפים, מבוצע מעבר על הטבלאות שלS1

(:2 לדיסק )שלב Pוהגרעין מחליט לפנות את הדףP אינו במטמון הדפים )שדה mapping במסגרת מצביע על

NULL:ולכן ) מוקצית מגירה עבורP המסגרת והמגירה שלP ,מקושרות למטמון הדפים )עדכון מוני השיתוף

במסגרת(index ו-mappingעדכון -הטבלה בS1 עוברת להצביע על המגירה של P מזהה המגירה מוצב(

בטבלה, עדכון מוני השיתוף(P!עדיין לא מפונה פיזית מהזיכרון

ושוב הגרעין S2בהמשך, מבוצע מעבר גם על הטבלאות של 1.(:3 לדיסק )שלב Pמחליט לפנות את

כעת, הדףP:כבר במטמון הדפים ולכן -הטבלה בS2 עוברת להצביע על המגירה של P ומעדכנים מוני(

שיתוף(P!עדיין לא מפונה פיזית מהזיכרון

מערכות הפעלה - תרגול 12 14(c) 2003 ארז חדד

(3מטמון הדפים – דוגמה) (, מתבצע פינוי פיזי של הדף 4מאוחר יותר )שלבP לאחר ,

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

mapping)מונה השיתוף ,המגירה מוצאת אף היא ממטמון הדפים )עדכון מונה השיתוף(3.

מערכות הפעלה - תרגול 12 15(c) 2003 ארז חדד

2

S1

S2

PC

מאגר דפדוף

זיכרון ראשי 1P

2

S1

S2

PC

מאגר דפדוף

זיכרון ראשי 2P

2

P

1

S1

S2

PC

מאגר דפדוף

זיכרון ראשי 3P

3

P

S1

S2

PC

מאגר דפדוף

זיכרון ראשי 4

2

P

מערכות הפעלה - תרגול 12 16(c) 2003 ארז חדד

מטמון הדפים – סיכום דוגמה ראינו בדוגמה זו כיצד מאפשר מטמון הדפים פעולה הדרגתית

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

אין צורך לעדכן את כל טבלאות הדפים המתייחסות לאותו דףבבת אחת

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

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

של מטמון הדפים ) ע"י hashמספר המסגרת תוך שימוש ב- Minor (. מצב זה נקרא )(find_get_pageשימוש בפונקציה

Page Fault בדוגמה(2,3. )אפשרי בשלבים הדף מפונה פיזית פעם אחת, ולמקום אחד בדיסק

מערכות הפעלה - תרגול 12 17(c) 2003 ארז חדד

מטמון הדפים – טעינת דף ,בטעינת דף מתבצעות הפעולות בסדר הפוך בקירוב

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

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

גם טעינת דף משותף מתבצעת בצורה הדרגתית תוךשמירה על תיאום בין התהליכים

הדף נטען פעם אחת בלבד ולמסגרת אחת בלבד

מערכות הפעלה - תרגול 12 18(c) 2003 ארז חדד

Linuxפינוי דפים ב-: פינוי דפים מהזיכרון לדיסק הינו מנגנון בעל שלושה מרכיבים

דירוג דינמי של רמת הפעילות של כל דף במסגרת בזיכרון)שאינו שייך לגרעין(

כאשר עולה הצורך בפינוי בפועל של זיכרון: מעבר על רשימת המסגרות בעלות ה"פעילות הנמוכה

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

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

משתמש: כאשר מאותרת כניסה השייכת לאזור זיכרון ומצביעה למסגרת הניתנת לפינוי ובעלת פעילות "נמוכה",

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

מערכות הפעלה - תרגול 12 19(c) 2003 ארז חדד

(1דירוג פעילות של דפים בזיכרון ) הגרעין מחזיק שתי רשימות מקושרות כפולות מעגליות

של רשומות מסגרות במטמון הדפים: active_list רשימת מסגרות הדפים ה"פעילים", כלומר –

דפים שניגשו אליהם "לאחרונה"inactive_list ,"רשימת מסגרות הדפים ה"לא-פעילים –

כלומר דפים שלא ניגשו אליהם "זמן מה"active_list, inactive_list הם שמות המשתנים הגלובליים המצביעים

mm/page_alloc.cלראשי הרשימות, המוגדרים בקובץ הגרעין הרשימות לא-חופפות, ורשומת כל מסגרת הניתנת לפינוי

מקושרת לאחת הרשימות מסגרות )הרשומות שלהן( מועברות בין הרשימות כפי שנראה

בהמשךמסגרת מוספת לרשימה דרך ראש הרשימה

מערכות הפעלה - תרגול 12 20(c) 2003 ארז חדד

(2דירוג פעילות של דפים בזיכרון )

הדגלPG_lru דולק ברשומת מסגרת הנמצאת באחת מהרשימות )לא מסגרת השייכת לגרעין, למשל(

הקישור של מסגרת לאחת הרשימות הוא באמצעות השדהlru ברשומת המסגרת

הדגלPG_active דולק רק בכל רשומת מסגרת השייכת active_listלרשימה

הדגלPG_referenced ברשומת מסגרת מציין שבוצעה גישה לדף במסגרת זו.

למסגרת להישאר ב-שתי הזדמנויותדגל זה משמש ליצירת active_list מתוך active_list למסגרת על-מנת להיכנס ל-שתי מדרגותאבל גם

.inactive_listה-

מערכות הפעלה - תרגול 12 21(c) 2003 ארז חדד

(3דירוג פעילות של דפים בזיכרון ) הפונקציהmark_page_accessed)(, המופעלת לציון גישה

למסגרת.-מבצעת כדלקמן: אם המסגרת ב active_list או PG_referenced ,כבוי

PG_referenced. אחרת, מכבה את PG_referencedמדליקה את active_listומכניסה את המסגרת מחדש ל-

קובץ גרעיןmm/filemap.c

הפונקציהrefill_inactive)(, רק במקרה שיש צורך המופעלת. inactive_list , מעדכנת את לפנות דפים

-עוברת על כל המסגרות ב active_list מסוף הרשימה )מסגרות ותיקות דלוק, מכבה אותו ומכניסה את המסגרת PG_referencedביותר(: אם

עם דגל inactive_list. אחרת, מעבירה את המסגרת ל-active_listמחדש ל-PG_referencedדולק

קובץ גרעיןmm/vmscan.c

מערכות הפעלה - תרגול 12 22(c) 2003 ארז חדד

(4דירוג פעילות של דפים בזיכרון )

-פינוי בפועל של דפים ממסגרות מבוצע החל מסוף רשימת הinactive_list "המסגרות הכי "לא פעילות

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

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

בהמשך-האלגוריתם המתקבל הוא קירוב לLRU "אלגוריתם ההזדמנות השלישית" :

PG_referenced=1PG_active=0

PG_referenced=0PG_active=1

PG_referenced=1PG_active=1

add_to_page_cache)(

refill_inactive)(

mark_page_accessed)(

PG_referenced=0PG_active=0

מערכות הפעלה - תרגול 12 23(c) 2003 ארז חדד

(1פינוי בפועל של זיכרון )-כפי שכבר הוזכר קודם, פינוי בפועל של מסגרות בLinux

מתבצע כפעולה של חוסר ברירהLinuxנוטה לנצל את הזיכרון הראשי ככל האפשר מבלי לפנות דפים כלל

"מוגדר סף "קריטיותthreshold) של כמות מינימלית של )מסגרות שחייבת להישאר פנויה.

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

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

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

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

thrashing.

מערכות הפעלה - תרגול 12 24(c) 2003 ארז חדד

(2פינוי בפועל של זיכרון ) מחזור מסגרות )מנגנון הפינוי, הקרוי מנגנוןPage Frame

Reclaiming) מופעל בקריאה לפונקציה ,try_to_free_pages)( כל פונקציות פינוי המסגרות מוגדרות בקובץ הגרעיןmm/vmscan.c

הפעלת הפונקציהtry_to_free_pages)(:מבוצעת במקרים הבאים במקרה שחו חוט גרעין מיוחד הקרויkswapd" או( swapper מגלה שכמות ,)"

המסגרות הפנויות קטנה/שווה לסף הנמוך. swapper )pid=0(-רץ בעדיפות נמוכה ומנצל לפיכך את ה idle time זמן ללא(

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

kswapdמתבצעת הפעלה ישירה של הפונקציה או שמעירים את

הפונקציהtry_to_free_pages)( מנסה לפנות SWAP_CLUSTER_MAX )32(.מסגרות בזיכרון

מערכות הפעלה - תרגול 12 25(c) 2003 ארז חדד

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

מבוצעות מספר איטרציות של ניסיונות שחרור מסגרות:בכל איטרציה

מנסים לשחרר מסגרות ע"י קריאה לפונקציות לצמצוםמטמונים שונים )פרט למטמון הדפים(

-קוראים לrefill_inactive)( על-מנת להגדיל את inactive_listה-

-מבצעים סריקה של הinactive_list מהסוף )קריאה ( ובה:)(shrink_cacheל-

משחררים מסגרות הנמצאות בשימוש מטמון הדפיםבלבד

( mapping != NULL, count == 1) מסגרת המכילה דף מלוכלך, כלומר שעבר עדכון )דגל

PG_dirty.דולק(, נכתבת לדיסק לפני פינויה

מערכות הפעלה - תרגול 12 26(c) 2003 ארז חדד

(1פינוי דפים ממרחבי זיכרון )-אם במהלך סריקת המסגרות בinactive_list נספרות "יותר

מדי" )מעבר לסף מוגדר( מסגרות המסומנות בשימוש ע"י ( ו/או שאינן במטמון הדפים count > 1תהליכים )

(mapping == NULL מופסקת הסריקה ומופעלת הפונקציה ,)swap_out)(.לפינוי דפים ממרחבי זיכרון

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

:המטרה( להביא את המסגרות למצב פנוי count == 0 או )! count == 1, mappingשהן בשימוש מטמון הדפים בלבד )

= NULL"מסגרות "לפני שחרור – ) הפונקציה מסיימת אם היא מצליחה להביא

SWAP_CLUSTER_MAX מסגרות למצב הרצוי או אם היא סרקה מתארי זיכרון בכמות שהייתה כשהתחילה לרוץ.

מערכות הפעלה - תרגול 12 27(c) 2003 ארז חדד

(2פינוי דפים ממרחבי זיכרון )פעולת הפונקציה swap_out)( טבלאות היא לסרוק את כל

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

למסגרת בזיכרון, מבוצעות הפעולות הבאות )המוגדרות (:)(try_to_swap_outבפונקציה

אם הביטaccessed בכניסה בטבלה דלוק, קוראת עבור המסגרת ומכבה את )(mark_page_accessedל-

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

הבאים: אזור הזיכרון המכיל את הדף ניתן לפינוי )דגלVM_LOCKED

במתאר אזור הזיכרון כבוי(-המסגרת לא בactive_list דגל( PG_active)כבוי

מערכות הפעלה - תרגול 12 28(c) 2003 ארז חדד

(3פינוי דפים ממרחבי זיכרון ):אם הדף ניתן לפינוי, מתבצע כדלקמן

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

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

)כפי שהוסבר קודם(: דלוק(, הדף צריך להתפנות לדיסק:PG_dirtyאם הדף "מלוכלך" )1.

:אם הדף לא במטמון הדפים, הוא מוכנס למטמון הדפים mapping, indexהקצאת מגירה אם ממופה אנונימי, עדכון

עדכון מוני שיתוף במסגרת ו)אם צריך( במגירה2.

NULLעדכון הכניסה בטבלת הדפים: מזהה מגירה למיפוי אנונימי, 3.למיפוי לקובץ

כבוי( ולכן PG_dirtyדף מיפוי אנונימי "בתול" לא עודכן מעולם )2. לכניסה NULLמכיל אפסים בלבד. עבור דף כזה, מוכנס

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