Виртуа́льная па́мять (англ. Virtual memory) — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем или иным способом на физические адреса в памяти ЭВМ. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых адресных пространств (англ.), и обеспечить защиту памяти между различными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых страниц на вторичное хранилище (см. Подкачка страниц).
При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти, или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объема ОЗУ.
|
|
Применение механизма виртуальной памяти позволяет:
• упростить адресацию памяти клиентским программным обеспечением;
• рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);
• изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).
В настоящее время эта технология имеет аппаратную поддержку на всех современных бытовых процессорах. В то же время во встраиваемых системах и в системах специального назначения, где требуется либо очень быстрая работа, либо есть ограничения на длительность отклика (системы реального времени) виртуальная память используется относительно редко. Также в таких системах реже встречается многозадачность и сложные иерархии памяти.
Какую модель памяти использует cyclic executive
«Карусельная диспетчеризация (циклическое планирование)». При карусельной
диспетчеризации процесс продолжает выполнение, пока не наступит момент, когда он:
• добровольно уступает управление (т.е. блокируется);
• вытесняется процессом с более высоким приоритетом;
• использовал свой квант времени (timeslice). После того, как процесс использовал свой
квант времени, управление передается следующему процессу, который находится в
состоянии готовности и имеет такой же уровень приоритета.