Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС / 1.docx
Скачиваний:
185
Добавлен:
03.06.2014
Размер:
5.4 Mб
Скачать

Виртуальная машина Java (jvm)

Подход, основанный на виртуализации, характерен не только для разработки операционных систем, но и для реализации современных платформ и языков программирования. Причина в том, что реализаторы этих языков и платформ стремятся сделать их переносимыми с одной реальной аппаратной платформы на другую. Такой подход принят, как широко известно, при реализации Java, но авторы Java отнюдь не первыми предложили данную идею. Программы на Java компилируются в платформно-независимый байт-код (bytecode) – команды виртуальной Java-машины, построенные на основе постфиксной записи операндов. Байт-код исполняется виртуальной машиной Java (JVM).

JVM состоит из:

загрузчика классов (class loader), выполняющего загрузку классов в виртуальную машину во время выполнения программы; загрузчик классов может быть стандартным или может быть переопределен пользователем;

верификатора классов (class verifier), выполняющего при загрузке класса проверку корректности его байт-кода, контроль типов и другие необходимые проверки;

интерпретатора (runtime interpreter), выполняющего интерпретацию (эмуляцию) команд байт-кода – абстрактной машины Java;

Just-In-Time (JIT) – компилятора, выполняющего при первом вызове каждого метода его компиляцию в объектный код целевой платформы ( native – код), что позволяет повысить суммарную производительность выполнения программ на Java.

Аналогичную архитектуру имеет виртуальная машина VES (Virtual Execution System) платформы Microsoft.NET, однако подход .NET более открытый – поддерживается многоязыковое программирование, и байт-код (в .NET называемый CIL – Common Intermediate Language ) играет роль универсального промежуточного языка, в который компилируется исходный код на любом языке, например, на C# или Visual Basic. Подробное рассмотрение этих вопросов выходит за рамки данного курса. В качестве базового учебника по Java-технологии рекомендую книгу [20].

Архитектура виртуальной машины Java изображена на рис. 7.5.

Рис. 7.5. Архитектура виртуальной машины Java (JVM).

Цели проектирования и разработки ос

Точки зрения пользователей и разработчиков ОС в данном отношении несколько различаются.

Цели с точки зрения пользователя: ОС должна быть удобной в использовании, простой для изучения, надежной, безопасной и быстрой.

Цели с точки зрения разработчика ОС: ОС должна быть несложной для проектирования, реализации и сопровождения, а также гибкой, надежной, свободной от ошибок и эффективной.

Механизмы и политики

При разработке ОС, как и любой другой сложной программной системы, различают концепции механизма и политики. Механизм определяет, каким образом реализовать некоторую функциональность (например, виртуальную память). Политика определяет, что именно требуется реализовать, т.е. набор требований, целей, условий для реализации функциональности. Например, политика безопасности в ОС определяет правила, по которым программе или пользователю предоставляются некоторые полномочия (например, возможность открытия некоторого файла). Эта политика может быть реализована многими способами, например, с помощью списков управления доступом (access control lists ); это понятие будет рассмотрено немного позже. Отделение механизма от политики – очень важный принцип для разработки ОС. Он допускает максимум гибкости, если "политические" решения могут быть изменены впоследствии.

Соседние файлы в папке ОС