Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операційні системи.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6.41 Mб
Скачать

Віртуальні машини - інший розповсюджений підхід до розробки операційних систем й їхніх користувальницьких інтерфейсів

Концепція віртуальної машини доводить підхід, заснований на рівнях абстракції, до свого логічного завершення. Відповідно до даної концепції, сукупність апаратур й ОС трактується як машина. Віртуальна машина надає інтерфейс, повністю аналогічний інтерфейсу звичайної машини без базового програмного забезпечення. ОС створює ілюзію одночасного виконання декількох процесів, кожного у своїй (віртуальної) пам'яті. Взагалі, виртуализация - один з найбільш сучасних принципів розвитку й використання програмного забезпечення.

Приклад: система віртуальних машин (SVM) в ОС IBM 360/370, розроблена наприкінці 1980-х рр. Більше сучасний приклад: Microsoft Virtual PC - продукт, який емулює віртуальну машину, у яку може бути інстальована будь-яка інша ОС, відмінна від основної.

При роботі користувачів у віртуальних машинах фізичні ресурси реальної комп'ютерної системи використаються спільно для підтримки декількох віртуальних машин. Диспетчеризація процесора створює в кожного користувача враження, що він має свій власний процесор. Буферизация (spooling) і файлова система надають віртуальні пристрої уведення й виводу. Термінал звичайного користувача, характерний для більше раннього режиму поділу часу, діє як операторська консоль.

Моделі операційних систем, розроблених без використання концепції віртуальної машини й на основі концепції віртуальних машин, зображені на рис. 7.4.

Рис. 7.4.  Моделі ОС без використання віртуальних машин і на основі віртуальних машин.

Як видно зі схеми, без використання віртуальних машин спосіб використання ОС й апаратури традиційна: є кілька користувальницьких процесів, що спільно використають одне ядро ОС й, природно, один екземпляр апаратур комп'ютера. При використанні віртуальних машин картина міняється: процес кожного користувача як би одержує у своє розпорядження свій персональний (віртуальний) комп'ютер і свій власний екземпляр ядра ОС, що працює на цьому віртуальному комп'ютері.

Концепція віртуальної машини має наступні переваги й недоліки. З одного боку, вона забезпечує повний захист системних ресурсів, тому що кожна віртуальна машина ізольована від інших, однак така ізоляція перешкоджає ефективному спільному використанню ресурсів реального комп'ютера.

Система віртуальних машин - гарна основа для дослідження й розробок в області ОС. Розробка систем виконується над віртуальною машиною, а не на фізичній машині, і не порушує нормального функціонування системи

Концепцію віртуальної машини, однак, сутужніше реалізувати, тому що важко адекватно змоделювати використовувану машину.

Віртуальна машина Java (JVM)

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

JVM складається з:

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

  2. верификатора класів (class verifier), що виконує при завантаженні класу перевірку коректності його байта-коду, контроль типів й інші необхідні перевірки;

  3. інтерпретатора (runtime interpreter), що виконує інтерпретацію (емуляцію) команд байта-коду – абстрактної машини Java;

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

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

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

Цілі проектування й розробки ОС

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

Цілі з погляду користувача: ОС повинна бути зручної у використанні, простий для вивчення, надійної, безпечної й швидкої.

Цїли з погляду розроблювача ОС: ОС повинна бути нескладною для проектування, реалізації й супроводу, а також гнучкою, надійною, вільною від помилок й ефективною.