/ / Віртуальна пам'ять комп'ютера

Віртуальна пам'ять комп'ютера

Ті користувачі комп'ютерів, яким пощастилозастати славні часи розквіту систем на основі 8086-сумісних процесорів, дуже добре знають, наскільки в той час був важливий обсяг встановленої пам'яті. Рахунок йшов буквально на кілобайти: щоб перевищити базові 640 кб і досягти «фантастичних» 736 кб купувався спеціальний зовнішній модуль розширення, який представляє собою важку плату в щодо великогабаритний корпусі. Однак обчислювальна техніка швидко еволюціонувала і незабаром психологічний бар'єр в 1 мегабайт був пройдений. Модулі оперативної пам'яті стали набагато компактніше, до того ж з'явилися процесори, що використовують її в повній мірі. Не відставали і додатки. Знаковою подією з'явився вихід Віндовс третьої версії, в якій використовувалася віртуальна пам'ять. Втім, це були лише боязкі кроки в напрямку, який згодом стане стандартом всіх операційних систем.

Що таке віртуальна пам'ять?Уявімо два однакових комп'ютера під керуванням Windows 3, тільки в одному встановлений 1 Мб пам'яті, а в іншому - 2 Мб. Підбирати програмні додатки виходячи з обсягу - значить приректи програмістів на каторжну працю, адже їм доведеться оптимізувати свої продукти під 1, 2 і т.д. мегабайт. Створити програму, розраховану на стандартний мінімум в 640 кб - означає відмовитися від деяких можливостей, «загнав» додаток в рамки. А орієнтуватися на 2 Мб - значить втратити потенційних покупців, у яких в комп'ютерах всього по 1 Мб. Це розуміли і в Майкрософт, тому був запропонований механізм, названий «віртуальна пам'ять». Програмістам тепер не потрібно знати, який обсяг встановлений в кожному комп'ютері. Звичайно, деякі обмеження, все ж, враховуються, але в цілому турботу про те, як «подружити» вимогливе до ресурсів додаток і компоненти комп'ютера взяла на себе операційна система. Ніяких чудес при цьому, звичайно, не відбувається. Сам принцип роботи надзвичайно простий.

Візьмемо для прикладу випадок, коли на комп'ютері з1 Мб запускається додаток, розроблене під 2 Мб. Частина обсягу займає сама система, тому з 1 Мб доступні користувачеві всього 500 кб (умовно). Запускаємо програму. Якщо віртуальна пам'ять не задіяна або відключена, то програма займає все 500 кб і припиняє роботу, видаючи повідомлення про виниклу помилку. Але все зовсім інакше, якщо механізм включений: займаються ті самі 500 кб, якщо йде наступний запит пам'яті, то блок даних записується в спеціальний файл на диску, звільняючи обсяг в оперативці. Для додатка механізм «прозорий». Фактично, віртуальна пам'ять - це частина оперативної, але розміщеної не в мікросхемах, а на диску. Подібне рішення виявилося настільки вдалим, що до сих пір ведуться роботи над його удосконаленням. Так, в новітній Віндовс 8 до вже звичного файлу підкачки pagefile додався swapfile, призначений тільки для метро-додатків.

Іноді користувачі можуть побачити системнеповідомлення про те, що віртуальна пам'ять закінчується. Як це пояснити в світлі всього вищесказаного? Тим більше незрозуміло, якщо врахувати, що вільний дисковий простір на вінчестері може ще залишатися. Одна з найбільш вірогідних причин цього криється в неправильних налаштуваннях механізму віртуальної пам'яті. Хоча за замовчуванням система вибирає режим автоматичного управління розміром файлу підкачки, допускається ручне регулювання із зазначенням жорстких рамок. Чи потрібно так робити чи ні - кожен користувач вирішує самостійно, але при виникненні помилки через брак обсягу доведеться підняти дозволену верхню межу. Це можна змінити в швидкодії (можна потрапити через властивості "Мій комп'ютер" або з панелі управління).