ВИРТУАЛЬНАЯ МАШИНА [virtual machine].
Вычислительная система заданной конфигурации, моделируемая для пользователя программными и аппаратными средствами конкретной реально существующей ЭВМ. Обычный программист редко имеет дело с машинными командами, которыми управляются конкретные электронные и механические устройства, составляющие реальную ЭВМ. Также он не работает с данными на уровне ячеек памяти и регистров. Между программистом и реальной машиной существует слой программного обеспечения, преобразующий для программиста аппаратную машину в виртуальную, которая обладает нужными ему ресурсами, алгоритмами, структурами данных и управляется более удобным, нежели машинные команды, способом. Конфигурация В. м. может существенно отличаться от реальной. Так, ее оперативная память может быть значительно больше (см. виртуальная память), а работа отсутствующих в реальной ЭВМ устройств может выполняться за счет совместных действий других устройств или моделироваться программами (см. эмуляция). В результате пользователь воспринимает В. м. как компьютер, имеющий архитектуру, отличную от реально существующей. Например, пользователь Паскаля работает с В. м. Паскаля, которую определяют структуры данных и алгоритмы, написанные на этом языке. При этом серьезному пользователю необходимо глубокое понимание В. м. Паскаля и того, как она моделируется на реальном компьютере, но существенно меньший интерес представляют сведения о работе компилятора при переводе программы, написанной на Паскале, в программу на машинном языке. Кроме того, наличие многозадачной операционной системы позволяет выделять каждой из одновременно выполняемых на компьютере задач свою В. м., обеспечивая распределение ресурсов и определенный уровень защиты данныхВИРТУАЛЬНАЯ МАШИНА JAVA [Java virtual machine (JVM)].
Описание виртуальной машины, определяющей семантику языка программирования Java. Разработана корпорацией Sun Microsystems и включает в себя: 1) описание формата файла, который должен создавать транслятор языка Java; 2) описание способа интерпретации исполняемой части этого файла (так называемый байт-код); 3) описание процедур проверки байт-кода на соблюдение требований безопасности, которые должны проводиться до начала интерпретации байт-кода. Существует множество реализаций JVM, разработанных как корпорацией Sun Microsystems, так и другими фирмами практически для всех программных и аппаратных платформВИРТУАЛЬНАЯ ПАМЯТЬ [virtual storage, virtual memory].
1. Механизм управления памятью вычислительной системы, позволяющий программе использовать память, размер которой больше реальной оперативной памяти, имеющейся у компьютера. Понятие «В. п.» включает в себя как управляющие памятью аппаратные и программные средства, так и способ управления памятью, который состоит в следующем. Выполняемой задаче отводится физическая память, состоящая частично из оперативной памяти и частично из более медленных и более дешевых внешних запоминающих устройств. Эта память разбивается на страницы фиксированной длины или сегменты переменной длины, параметры которых записываются в специальные таблицы страниц или сегментов. С помощью этих таблиц устанавливается соответствие между виртуальными адресами, указанными в программе, и физическими адресами запоминающих устройств. Процессор работает с командами и данными, находящимися в оперативной памяти, до тех пор, пока не произойдет обращение к команде или операнду, содержащимся в странице или сегменте внешней памяти. В этом случае выполнение программы прерывается и происходит переписывание нужной страницы или сегмента из внешней памяти в оперативную. Если в оперативной памяти не оказалось свободного места, то оно предварительно высвобождается, для чего содержимое одной из страниц или сегмента оперативной памяти сохраняется на внешнем устройстве. После такого обмена страницами или сегментами соответственно корректируются таблицы страниц или сегментов и выполнение программы продолжается. См. свопинг, подкачка, страничный обмен. 2. Память виртуальной машиныВИРТУАЛЬНАЯ ФУНКЦИЯ [virtual function].
Функция абстрактного класса, для которой не указан метод реализации в рамках описания данного класса. Реализация В. ф. должна быть указана в одном из классов, которые наследуют данному классу