Я спробую почати повільно, а потім складу все це для вас. Це так:
Віртуальна пам'ять, як зазвичай використовується, відноситься до "підкачки". Як випливає з назви, пейджінг - це як людський блокнот.
Коли ви відпрацьовуєте прості суми або вивчаєте просту інформацію, ви все це робите в голові: ви просто завантажуєте всю інформацію, обробляєте її та отримуєте відповідь. Це як комп'ютер, що завантажує файли з жорсткого диска - він завантажує програми чи зображення, або іншу інформацію, необхідну для роботи у своїй «реальній пам’яті» (або «фізичній пам’яті»), і працює над ними зі своїм «мозком» ( його процесор).
Однак, коли ви вивчаєте складну інформацію або працюєте зі складними сумами, ви, можливо, не зможете одразу помістити все це в голові. Ви плутаєтеся, починаєте гальмувати, не вдається тримати все це відразу, і вам доведеться щось забути, щоб запам'ятати щось інше.
Людське рішення - використовувати блокнот. Ми записуємо на сторінках усі речі, які ми не можемо згадати одразу, але посилаємось на них, роблячи суми. Ми, можливо, не зможемо згадати величезний список показників продажів за місяць, але ми можемо переглянути сторінки, отримати інформацію трохи за один раз та обробити кожен шматочок. Це схоже на те, що комп'ютер "підкачує" свою пам'ять - пише сторінки, наповнені інформацією, і вкладає її у "віртуальну пам'ять" для подальшого ознайомлення, усвідомлюючи, що вона потребує сторінки, і завантажує її назад з віртуальної пам'яті в реальну пам'ять. У Linux і unix місце, де ці сторінки зберігаються, буквально називається "файл сторінки", а сторінки даних в пам'яті буквально називаються "сторінки". Різні системи мають різні назви цих речей, але загальна концепція майже однакова.
Так що насправді, пейджингова стрічка дуже проста. Усі сторінки інформації не вміщуються в пам’яті, тому деякі сторінки ставлять на диск і завантажуються знову пізніше.
Тепер, де це ускладнюється, це те, що в сучасних системах є відображення пам'яті та захист пам’яті, якими зазвичай керує одна і та ж апаратна система в комп'ютері: блок управління пам’яттю або MMU.
У (сучасному) багатозадачному комп’ютері, який може запускати багато програм одночасно і має захист пам’яті, кожна програма зазвичай відокремлена від інших програм, що працюють в тій же системі. Таким чином, одна програма не може змінити іншу програму просто шляхом доступу до її пам’яті - MMU фізично відокремлює адресний простір однієї програми від іншого. Іншими словами, програми користувача не бачать програм інших користувачів або навіть інших програм. Вони не бачать "реальної пам'яті" - вони бачать власну "віртуальну пам'ять".
Тепер ця концепція ізоляції пам’яті та концепція файлу сторінки - це дві концептуально різні речі, і це, мабуть, тому ви плутаєтесь. Однак ключовим є те, що вони обидва працюють за допомогою MMU - блоку управління пам'яттю, який розбиває пам'ять на сторінки, і переносить сторінки у віртуальний адресний простір.
Отже, коли програма запитує пам'ять на певну "адресу пам'яті", що насправді відбувається, це те, що сторінки пам'яті для цієї програми та їх відповідні адреси ("адресний простір" програми) переглядаються вгору та сторінка, яка відповідає що блок пам'яті знайдений. Ця сторінка може бути завантажена десь у реальну пам'ять, і в такому випадку програмі надається доступ, або вона може бути передана на сторінку на диск. Якщо вона випущена на екран, вона викликає "помилку сторінки" - диск доступний, і сторінка завантажується в пам'ять. Таким чином, програма працює навіть тоді, коли не вистачає пам'яті, але вона працює НЕБЕЗПЕЧНО, якщо їй доводиться використовувати диск для того, що зазвичай буде дуже швидким доступом до пам'яті.
Тепер, якщо не вистачає місця для завантаження цієї сторінки в пам'ять, у вас виникає проблема. У такому випадку якусь ІНШУ сторінку, яка вже є в пам’яті, потрібно «поміняти» на диск, щоб можна було завантажити сторінку першої програми. Або вони однаково можуть бути сторінками однієї програми. Це ви бачите іноді в графічних програмах, наприклад, на сильно завантажених системах, коли частина зображення завантажується повільно і швидко малюється, тоді наступна частина завантажується однаково повільно і швидко малюється, і коли ви повертаєтесь до роботи з першою частина, це повільно ПРОТИ. Це тому, що вони завантажуються, щоб працювати над ними, потім знову помінятися, щоб щось над цим можна було працювати. Очевидно, що це дуже повільний спосіб роботи, і те, що вам справді потрібно, - це більш РЕАЛЬНА пам'ять.