
save) הולך לאיבוד אם החשמל נופל.pagefile.sys שמשמש כהמשך הזיכרון. במחשב של המרצה הוא כ-9.9 ג'יגה, ואפשר לשנות את מיקומו וגודלו ב-Advanced system settings, בלשונית Performance, תחת Virtual memory.הטקסט המלא של הדקות הראשונות בהרצאה «מיפוי של זיכרון וירטואלי לזיכרון פיזי» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם בהרצאה הזאת אנחנו נלמד על הזיכרון איך הוא עובד אנחנו נראה שהוא מגיע למהירות של 35 גיגה בייט בשנייה שזה ddr4 והמהירויות האלו של 30 גיגה בייט בשנייה לעומת ה-hard disk שהוא 5 הוא רק 5 הוא רק 2 גיגה בייט בשנייה וזה 32 הזיכרון הזה הוא מדהים ואנחנו נלמד איך אנחנו עובדים איתו ואנחנו נלמד איך מנהלים אותו את הכתובות שלו איך מתנהלות הכתובות של הזיכרון ומה קורה
מאחורי הקלעים הכנתי לכם מלא חומר מעניין ומי שחושב שהוא יודע את הכל סתם אני אקפוץ איתכם קצת קדימה להראות לכם מה אני הולך להראות לכם פה לדוגמת טבלת ניהול של הזיכרון מבפנוכו איך זה עובד איך עובדת האבטחה איך המחשב מנהל את כל הטבלה הזאת אז זאת הולכת להיות הרצאה מעניינת גם אם אתם מאוד מאוד חכמים תנו לי
הזדמנות להפתיע אתכם אז ככה הצ'יפים האלו של הזיכרון הם סופר מהירים הבעיה שאם מכבים להם את החשמל כל המידע תוך כמה שניות הולך לאיבוד ויש טריק, אחלה טריק, להקפיא את המחשב אפשר לשים גז מיוחד על הצ'יפים האלו של הזיכרון להקפיא אותם, ממש על המחשב לשים גז כזה שמקפיא אותם
ואז לשלוף את הזיכרון והמידע יחזיק בו עוד איזה כמה שניות ובזמן הזה להכניס את זה למחשב אחר ולהוציא את כל מה שיהיה שם, לצלם את כל הזיכרון.
ככה אפשר לפרוץ את הביטלוקר, את ההצפנה של ההארדיסק. כי כשיש ביטלוקר על כל ההארדיסק, אם אנחנו מצפינים, המפתחות ההצפנה הסודיים נמצאים רק בזיכרון של המחשב.
הנחת היסוד שאם נכבה את החשמל, הכל יתחבא. אבל אם אני אשים עליו גז ואני אגנוב את הצ'יפ הזה של הזיכרון, אכניס אותו למחשב אחר, אצלם את כל המצב של הזיכרון, יוכל להוציא את המפתחות הסודיים של ההצפנה של ביטלוקר.
זה קצת מורכב, אבל אפשרי. הזיכרונות האלו הם מאוד מאוד מהירים, הם מגיעים 32 ג'יגה בייט בשנייה, והארדיסק הוא הרבה יותר איטי. בגלל זה כל פעם שאנחנו עושים דאבל קליק על תוכנה בארדיסק להריץ אותה, היא נכנסת קודם כל לזיכרון. אתם רואים? היא עולה לזיכרון, ורק אחרי שהביינרי אימג' הקוד שלה הוא עתק מארדיסק, מדיסק קשיח,
לזיכרון ראם, רק אחרי ההעתקה הזאת היא מורצת. זאת אומרת, המעבד מבצע פקודות של התוכנה, מריץ את התוכנה לא מדיסק, הוא מריץ אותה מזיכרון.
זאת אומרת, שלב ראשון, מערכת ההפעלה מעתיקה את האקזה, את הקוד שלו, של התוכנה, של פוטושופ, של משחק, לתוך הזיכרון, ורק אחרי שהעתיקה אותו היא אומרת למעבד תריץ את זה.
דרך אגב, היא גם מעתיקה דאטה, את הנתונים, את המשתנים שלה, ויש פה עוד כל מיני משתנים שיכולים לגדול תוך כדי, נניח, המשחק או תוך כדי עבודה בפוטושופ.
אני מביא עוד תמונות, עוד זיכרון. זאת אומרת, כל העבודה היא מול רם, מול זיכרון. ולכן, כשאנחנו עובדים, ואם מתחבא לנו חשמל, אנחנו יכולים לאבד את כל השלב במשחק, את כל המסמך הפתוח, כי הכל מתבצע בזיכרון.
ולכן, מה אנחנו אומרים? כל הזמן לעשות סייב. מה עושה סייב? מעביר את הנתונים האלו לדיסק קשיח, שהוא מאוד מאוד איטי. עכשיו, שימו לב לכתובות פה, מה הולך פה עם כתובות?
תראו, התוכנה הזאת, ולמעשה כל תוכנה במחשב, חושבת שכל הזיכרון הוא שייך לה. היא מתחילה מ-000000, ויש לה כתובת 0804800, כל הכתובות בעולם שלה עד FFF, הכתובת האחרונה.
למעשה, המחשב נותן להרגיש לתוכנה כאילו כל הזיכרון שהיא רוצה, כל כתובת שהיא רוצה, זמין לה, פנוי לה, אבל באמצעות זה לא ככה, באמצעיות יש לנו כמה עשרות תוכנות.
תיכנסו לטאסק מנאג'ר, תראו כמה תוכנות עובדות במקביל אצלכם. אז איך אנחנו מפעילים המון תוכנות במקביל, וכל אחת חושבת שיש לה את כל הזיכרון? וגם מי אמר שיש לי במחשב כל כך הרבה זיכרון?
אולי יש לי קצת זיכרון במחשב? הטריק הוא וירצ'ואל אדרס. התוכנה חושבת שזה זיכרון, אבל זה למעשה כתובות וירטואליות, והיא לא יודעת שזה כתובות וירטואליות.
מבחינתה זה כתובות רגילות בזיכרון, זה הזיכרון של התוכנה, אבל היא חושבת שזה הכל באמת זיכרון אמיתי, והיא לא מודעת לזה שמאחורי הקלעים רק חלק נמצא בפיזיקל ממורי, רק חלק קטן, וחלק אחר של תאי הזיכרון שלה נמצא בארדיסק בלי שמספרים לה.
היא לא יודעת ששמו את תאי הזיכרון שלה בכלל בדיסק, מערכת ההפעלה לא מספרת לה את זה. לדוגמה, מתי אנחנו יכולים לראות את זה? כשאנחנו נעבור בין התוכנות עם אלט וטאב, נעשה מעבר מהיר בין התוכנות אתם תראו פתאום שמעבר לאיזושהי תוכנה לוקח קצת זמן למה זה פתאום ככה נתקע ולוקח לו זמן לעבור כי כשאנחנו פונים לתוכנה צריך לשלוף אותה את תאי הזיכרון
שלה מהרדיסק התוכנה כאילו עובדת בזיכרון הרגיל אבל בפועל היא בדיסק הקשיח הטריק הזה מאפשר לתת לתוכנה הרגשה כאילו יש לה המון זיכרון ולא רק לה גם לחברים שלה יש המון זיכרון הנה תסתכלו באתר של מייקרוסופט אנחנו רואים פה שתוכנה Notepad חושבת שיש לה את כל הזיכרון שבעולם.
אנחנו עכשיו ב-64 ביט, תראו כמה כתובות יש לה. וגם התוכנה MyApp חושבת שיש לה המון המון המון המון כתובות. כאילו יש לי פה טרות שלמות של זיכרון ראם, למרות שיש לי כמה ג'יגות.
אבל בפועל חלק מהתאים שלה, חלק מהטובות שלה יושב בארדיסק הפיזי וחלק בראם הפיזי. ואם אנחנו נראית כאן בכתבה של מייקרוסופט, תראו דרך אגב כמה כתובות יש, זה המון המון כתובות כמובן שאין לי כל כך הרבה זיכרון פיזי כתוב פה משהו מאוד מאוד מעניין אני אחסוך לכם את הקריאה הזאת אני קראתי את זה במקומכם in user space כאילו התוכנות הרגילות של הuser ולא מערכת ההפעלה יש user
space ויש kernel space kernel זה מערכת הפעלה all physical memory pages can be page out to the disk as needed כל עמודי הזיכרון יכולים לעשות page out לדיסק הקשיח מתי שהיא תרצה היא יכולה להעיף את העמודים של הזיכרון להרדיסק הנה בבקשה אתם רואים לוקחים זה מעיפים לדיסק הקשיח זה אומר העמוד הזה עף לדיסק הקשיח ושני
אלו נמצאים גם בדיסק הקשיח בואו נחזור למשהו שרציתי להראות לכם שהזיכרון מאחורי הקלעים מבחינת פיזיקה כן מבחינה איך בנוי הצ'יפ זה כולה כתובת באיזשהו ערך שיושב בפנים כתובת ואיזשהו ערך זה מבחינת הצ'יפ עכשיו בשביל לחלק כל כך הרבה כתובות לכל כך הרבה תוכנות עשו בעצם כזאת טבלה מתווכת.
הטבלה הזאת היא פר כל תוכנה, פר פרוצס יש טבלה נפרדת. אני רק רוצה להסביר לכם שאם מבקשים תא מספר 2, נניח מבקשים תא מספר 2 בזיכרון של התוכנה, יש פה בטבלה כתוב, בפייג' טייבל כתוב שזה נמצא בזיכרון הפיזי בתא מספר 9, וזה באמת שמה, זה נוכח.
אם מבקשים תא מספר 1 בתוכנה כלשהי, בפרוצס כלשהו, בתהליך כלשהו שרץ, אנחנו רואים אופס הוא לא פרזנט הוא לא נמצא וזה מייצר פייג' פולט מה זה אומר פייג' פולט נפלנו על עמוד שלא קיים בזיכרון עוצרים את הכל הולכים לדיסק מביאים אותו ואז נותנים את זה הלאה לתוכנה לרוץ זה נראה דבר כזה יש את הווירצ'ואל ממורי את הזיכרון של התוכנה עם כל הכתובות שלה זה כל העולם שלה כל הכתובות
בעולם יש טבלת מיפוי כזאת זאת הטבלה שאנחנו הולכים לחקור אותה והיא אומרת בעצם איפה זה נמצא בזיכרון הפיזי ואם משהו חסר הולכים לארדיסק ומביאים אותו ואם מתחיל להיגמר הזיכרון היא לוקחת סתם איזשהו עמוד שמה ב swap out שמה אותו בדיסק דרך אגב איפה זה נמצא בדיסק שלי אתם יודעים שזה נמצא אצלי בארדיסק ואני יכול להראות לכם את זה זה המחשב שלי אם אנחנו ניכנס פה למאפיינים שלו לפרופרטיז
אני נכנס כאן למאפיינים בואו נצמצם את זה זה מאפיינים שלי אני עושה פה advanced ובאדוונס במאפיינים באדוונס יש לי פה performance ובפרפורמנס יש לי פה advanced אני יודע שזה קצת מסובך זה פה בפרפורמנס היה קצת advanced והנה הגענו לאדוונס שיש פה virtual memory paging file is an area זה אזור קובץ paging זה אזור on the hard disk
that Windows uses שווינדוס משתמשת בו if it were ram כאילו זה זיכרון רם אתם רואים אצלי במחשב יש 10 ג'יגה 9,000 מגה כמעט 10 ג'יגה 9 וחצי ג'יגה מתוך הhard disk זה קובץ בhard disk זה קובץ בדיסק שלי שמערכת ההפעלה מנצלת את המקום הזה כאילו זה זיכרון רם ואם צריך היא יכולה גם להגדיל אותו דרך אגב אני יכול גם לקבוע איפה לשים אותו אני יכול לעשות פה change זה ממש קובץ שאתם יכולים לראות
אותו הנה הקובץ הזה הנה אתם יכולים לראות אותו כאן מצאתי אותו בשבילכם pagefile.sys אתם רואים pagefile.sys 9.9 ג'יגה הקובץ הזה זה למעשה ההמשך של הזיכרון רם שלי ובזכות זה כל תוכנה חושבת שיש לה את כל הזיכרון שבעולם עכשיו בואו נראה איך זה מתנהל איך הטבלה הזאת מתנהלת למה כי יש פה משהו מאוד מאוד מעניין אז אמרנו
איזה בלוק בזיכרון הווירטואלי כאילו שהתוכנה