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

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

Что такое виртуальная память? Представим два одинаковых компьютера под управлением Windows 3, только в одном установлен 1 Мб памяти, а в другом – 2 Мб. Подбирать программные приложения исходя из объема – значит обречь программистов на каторжный труд, ведь им придется оптимизировать свои продукты под 1, 2 и т.д. мегабайт. Создать программу, рассчитанную на стандартный минимум в 640 кб – значит отказаться от некоторых возможностей, «загнав» приложение в рамки. А ориентироваться на 2 Мб – значит потерять потенциальных покупателей, у которых в компьютерах всего по 1 Мб. Это понимали и в Майкрософт, поэтому был предложен механизм, названный «виртуальная память». Программистам теперь не нужно знать, какой объем установлен в каждом компьютере. Конечно, некоторые ограничения, все же, учитываются, но в целом заботу о том, как «подружить» требовательное к ресурсам приложение и компоненты компьютера взяла на себя операционная система. Никаких чудес при этом, конечно, не происходит. Сам принцип работы чрезвычайно прост.

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

Иногда пользователи могут увидеть системное сообщение о том, что виртуальная память заканчивается. Как это объяснить в свете всего вышесказанного? Тем более непонятно, если учесть, что свободное дисковое пространство на винчестере может еще оставаться. Одна из наиболее вероятных причин этого кроется в неправильных настройках механизма виртуальной памяти. Хотя по умолчанию система выбирает режим автоматического управления размером файла подкачки, допускается ручное регулирование с указание жестких рамок. Нужно ли так делать или нет – каждый пользователь решает самостоятельно, но при возникновении ошибки из-за недостатка объема придется поднять разрешенную верхнюю границу. Это настраивается в параметрах быстродействия (можно попасть через свойства "Мой компьютер" или из панели управления).

Комментарии