logo

מהו זיכרון וירטואלי במערכת ההפעלה (מערכת הפעלה)?

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

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

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

על ידי כך, מידת הריבוי תכנות תוגדל ולכן, גם ניצול ה-CPU תוגדל.

איך עובד זיכרון וירטואלי?

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

מכיוון שכל ההליך הזה מתרחש באופן אוטומטי, לכן זה גורם למחשב להרגיש שיש לו זיכרון RAM בלתי מוגבל.

איתור דרישה

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

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

תמונת מצב של מערכת ניהול זיכרון וירטואלי

נניח ש-2 תהליכים, P1 ו-P2, מכילים 4 עמודים כל אחד. כל גודל עמוד הוא 1 KB. הזיכרון הראשי מכיל 8 פריימים של 1 KB כל אחד. מערכת ההפעלה נמצאת בשתי המחיצות הראשונות. במחיצה השלישית, 1רחובהעמוד של P1 מאוחסן והמסגרות האחרות מוצגות גם הן כשהן מלאות בדפי התהליכים השונים בזיכרון הראשי.

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

ה-CPU מכיל אוגר המכיל את כתובת הבסיס של טבלת הדפים שהיא 5 במקרה של P1 ו-7 במקרה של P2. כתובת בסיס טבלת עמודים זו תתווסף למספר העמוד של הכתובת הלוגית כאשר מדובר בגישה לערך המתאים בפועל.


זיכרון וירטואלי של מערכת ההפעלה

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

  1. דרגת Multiprogramming תוגדל.
  2. המשתמש יכול להריץ יישום גדול עם פחות זיכרון RAM אמיתי.
  3. אין צורך לקנות יותר זיכרון RAM.

חסרונות של זיכרון וירטואלי

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