Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОЭВМ 11-25.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
235.52 Кб
Скачать

Вопрос 23(Виртуальная память)

Виртуа́льная па́мять — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем или иным способом на физические адреса в памяти ЭВМ. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых адресных пространств (англ.), и обеспечить защиту памяти между различными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых страниц на вторичное хранилище

При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти, или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объёма ОЗУ.

Применение механизма виртуальной памяти позволяет:

упростить адресацию памяти клиентским программным обеспечением;

рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);

изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).

В настоящее время эта технология имеет аппаратную поддержку на всех современных бытовых процессорах. В то же время во встраиваемых системах и в системах специального назначения, где требуется либо очень быстрая работа, либо есть ограничения на длительность отклика (системы реального времени) виртуальная память используется относительно редко. Также в таких системах реже встречается многозадачность и сложные иерархии памяти.

Виртуальная память — это волшебный фокус, требующий тщательно отлаженного взаимодействия между микропроцессором, служебной программой виртуальной памяти и диском компьютера. Когда программа вводится в компьютер, операционная система создает "виртуальное пространство памяти", которое представляет собой модель объема памяти и ее адресов, находящихся в распоряжении программы. Затем часть "истинной", физической памяти компьютера отводится для поддержки этой виртуальной памяти. Используя одно из свойств микропроцессора Intel 80286, служебная программа виртуальной памяти операционной системы посылает команду микропроцессору сопоставить физической памяти, предназначенной для нашей программы, виртуальные адреса, которые будут использоваться программой. Такое свойство этого микропроцессора, как управление памятью", заставляет реальную память иметь рабочий адрес, отличающийся от истинного, физического адреса.

До сих пор это была просто перетасовка — трюк, позволяющий реальным адресам памяти работать в качестве совершенно других, виртуальных адресов. Самое важное свойство виртуальной памяти заключается в следующем этапе, когда наши программы пытаются использовать виртуальную память, превышающую по объему физическую память.

Программа начинает работу с отображения некоторой части большого пространства виртуальной памяти в определенную часть меньшей по объему физической памяти компьютера. Пока программа работает лишь с частью своей виртуальной памяти, все идет хорошо. Программа на самом деле использует другие адреса памяти, но это не имеет для нее никакого значения. Что же происходит дальше, когда программа пытается использовать ту большую часть виртуальной памяти, которой не было отведено место в реальной памяти, меньшей по объему? В этом случае таблица управления памятью микропроцессора обнаруживает, что программа пытается использовать несуществующий в данный момент адрес. Микропроцессор дает команду "отсутствие страницы".