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

6. Уровни абстракции

В конце 1960-х гг., при разработке операционной системы THE (название – аббревиатура, означающая "Технический университет Эйндховена"), Э. Дейкстра предложил для своего времени весьма новый и прогрессивный принцип уровней абстракции, полезный при разработке любой сложной программной системы, в том числе – столь сложной, как операционная система. Согласно этому принципу, ОС (или другая сложная программа) реализуется в виде набора (иерархии) уровней абстракции (abstraction layers),каждый из которых реализован на основе предыдущего уровня. Уровень 0 (layer 0) образует аппаратура ( hardware ); самый высокий уровень N (layer N) является пользовательским интерфейсом с операционной системой. Каждый уровень абстракции N > 0 – это группа модулей, при реализации которого, согласно принципам модульного программирования, используются только модули предшествующего уровня (N-1).

"Перескакивание" через уровень (т.е., например, использование при реализации модуля уровня N вызовов модулей уровня N – 2) не рекомендуется и является нарушением технологии, которое может привести к ошибкам.

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

Заметим, что, по сути дела, уровни абстракции – движущая сила и принцип развития всего программного обеспечения в целом, а не только операционных систем. Каждая новая программа разрабатывается не с нуля, а на некотором достаточно высоком уровне абстракции, используя другие уже разработанные системы.

Уровни абстракции ос

Проектирование и реализация операционных систем адекватно соответствуют принципу уровней абстракции, сформулированному Э. Дейкстрой . На рис. 7.1 изображены уровни абстракции при разработке ОС.

Рис. 7.1. Уровни абстракции ОС.

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

На рис. 7.2 изображены уровни абстракции операционной системы OS/2 – второй ОС (вслед за MS DOS), разработанной фирмой Microsoft (в середине 1980-х гг.) для персональных компьютеров PS/2. OS/2 является значительно более развитой ОС, чем MS DOS, как видно из рисунка.

Структура системы ms dos

После краткого обзора возможностей ОС проанализируем теперь особенности их структуры и архитектуры и некоторые полезные методы их разработки. Простейшим примером с этой точки зрения является MS DOS, разработанная по принципу: обеспечить максимум функциональности, используя минимум памяти (напомним об ограничении в 640 K на объем памяти для программы в MS-DOS). В MS DOS нет явного разделения на модули. Поэтому, хотя MS-DOS и имеет некоторую архитектуру, уровни функциональности и интерфейсы в ней не отделены четко друг от друга. Уровни абстракции модулей MS DOS изображены на рис. 6.5. Подробнее о концепции уровней абстракции, полезной для разработки ОС, которую мы пока используем интуитивно, - в конце данной лекции.

Рис. 6.5. Уровни абстракции модулей MS DOS.

В схеме можно выделить четыре уровня абстракции. Наиболее высокий – уровень пользовательской программы. Более низкий – резидентная системная программа, компонента ядра ОС. Еще ниже – уровень драйверов устройств, являющихся частью ядра MS DOS, и самый низкий – уровень драйверов, хранящихся в ROM BIOS (Read-Only Memory of the Basic Input-Output System) – постоянной памяти BIOS, системного модуля компьютера, которому передается управление непосредственно после его включения. ROM BIOS содержит наиболее важную часть драйверов, например, драйвер материнской платы (motherboard). ОС загружает и использует драйверы других устройств, например, принтера.

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