Виртуальная машина

Многоуровневые системы

5. интерфейс пользователя
4. управление ввода-вывода
3. драйверы устройства, связи оператора и консоли
2. управление памятью
1. планирование задач и процессов
0. HARDWARE (техническое обеспечение)

 

Можно разбить всю вычислительную систему на ряд более мелких уровней, с хорошо определенными связями между ними, так чтобы объекты уровня n могли вызывать объекты уровня n-1.

Нижний уровень аппаратного обеспечения, верхний уровень пользователя. Чем ниже уровень, тем более привилегированные команды и действия может выполнять модуль, находящийся на этом уровне.

Слоеные системы хорошо реализуются. При использование операций нижнего слоя не нужно знать, как они реализованы, нужно лишь понимать, что они делают. Хорошо тестируются (снизу вверх). При возникновение ошибки мы можем быть уверены, что она находится в тестируемом слое. Можно заменить лишь один слой, не трогая остальные. Сложны для разработки. Тяжело правильно определить порядок слоев и что, к какому слою относится. Слоеная система менее эффективна, чем монолитная. Например: для выполнения операции ввода-вывода программе пользователя придется последовательно проходить все слои от верхнего до нижнего.

Программа пользователя Программа пользователя Программа пользователя
MS-DOS Linux Windows-NT
Виртуальное hardware Виртуальное hardware Виртуальное hardware
Реальная операционная система
Реальное hardware

 

Пусть ОС реализует виртуальную машину для каждого пользователя, но, не упрощая ему жизнь, а усложняя. Каждая такая виртуальная машина предстает перед пользователем, как копия всего технического обеспечения в вычислительной системе, включая процессор, привилегированные и непривилегированные команды, устройство ввода-вывода, прерывание и т.д. ,и он остается с этим техническим обеспечением один на один. При попытки обратится к такому виртуальному техническому обеспечению на уровне привилегированных команд в действительности происходит системный вызов реальной ОС, которая и производит все необходимые действия.

Такой подход позволяет каждому пользователю загрузить свою ОС на виртуальную машину и делать с ней все что угодно. Первой реальной системой такого рода была система CP/CMS или VM/370.

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