7. Лекция: Уровни абстракции ос. Ос с архитектурой микроядра. Виртуальные машины. Цели проектирования и разработки ос. Генерация ос



Скачать 285.56 Kb.
Дата28.11.2016
Размер285.56 Kb.
Просмотров165
Скачиваний0
ТипРеферат

7. Лекция: Уровни абстракции ОС. ОС с архитектурой микроядра. Виртуальные машины. Цели проектирования и разработки ОС. Генерация ОС
В лекции рассматриваются следующие вопросы: методы проектирования и реализации ОС: уровни абстракции ОС; ОС с архитектурой микроядра; виртуальные машины; цели проектирования и разработки ОС с точки зрения пользователей и разработчиков; генерация ОС для конкретной компьютерной системы при ее инсталляции.


Содержание

  • Введение

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

  • Операционные системы с микроядром

  • Виртуальные машины - другой распространенный подход к разработке операционных систем и их пользовательских интерфейсов

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

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

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

  • Реализация операционных систем

  • Генерация операционной системы

  • Ключевые термины

  • Краткие итоги


Введение

Сложность архитектуры ОС приводит к необходимости использования специальных методов для их разработки. В лекции рассмотрены наиболее популярные из таких методов.




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

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

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

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


На верхнем уровне абстракции прикладные программы пользователей обращаются к интерфейсу прикладного программирования (application programming interface - API), который представляет собой набор библиотечных функций. API структурирован по подсистемам, причем набор подсистем расширяем. Нижние уровни абстракции реализуют ядро ОС, выполняющее функции управления памятью, диспетчеризации задач и управления устройствами. Наконец, на самом низком уровне абстракции реализованы драйверы устройств.


Операционные системы с микроядром

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

  1. микроядро легче расширять;

  2. легче переносить ОС на новые аппаратные платформы;

  3. увеличивается надежность ОС, так как большее число программ выполняются в непривилегированном режиме;

  4. улучшается безопасность ОС.

По такому принципу разработаны все операционные системы семейства Windows NT. Структура Windows NT изображена на рис. 7.3.
Система Windows NT (от New Technology), разработанная в середине 1990-х гг., воплотила в себе новый подход Microsoft к разработке операционных систем. Его отличительные черты:модульная клиент-серверная архитектура, микроядро, обеспечение совместимости с распространенными видами приложений для других ОС (например, OS/2), расширенные сетевые возможности, повышенная надежность. Windows NT с середины 1990-х гг. широко распространилась как серверная ОС. Для совместимости с приложениями для других ОС, в Windows NT реализованы соответствующие серверы. Взаимодействие клиентских приложений с ними показано на схеме. Аббревиатура Win32 означает "библиотеки (API) ОС Windows для 32-разрядных процессоров". POSIX (Portable Operating Systems of unIX type) - стандарт для библиотек, системных вызовов и системных программ для операционных систем типа UNIX. POSIX-совместимость означает, что приложение, предназначенное для UNIX, использует только стандартные возможности. Все современные ОС (начиная с Windows NT) обеспечивают совместимость с POSIX-приложениями. Заметим, что все серверы для совместимости с другими ОС в Windows NT выполняются в непривилегированном режиме, но обращаются к микроядру.


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

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

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

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

Модели операционных систем, разработанных без использования концепции виртуальной машины и на основе концепции виртуальных машин, изображены на рис. 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-технологии рекомендую книгу "Виртуальные файловые системы (VFS). Реализации файловых систем. Сетевая файловая система NFS".

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





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

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



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

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


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

При разработке ОС, как и любой другой сложной программной системы, различают концепции механизма и политики. Механизм определяет, каким образом

реализовать некоторую функциональность (например, виртуальную память). Политика

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



политические" решения могут быть изменены

Он допускает максимум гибкости, если впоследствии.




Реализация операционных систем

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

Преимущества использования языков высокого уровня очевидны: код на языке высокого уровня


  1. может быть разработан быстрее

  2. более компактен

  3. легче для понимания и отладки.

Кроме того, операционная система гораздо легче переносима на другие аппаратные платформы, если она разработана на языке высокого уровня.

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




Генерация операционной системы

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

Программа генерации ОС получает информацию о специфической конфигурации компьютерной системы.

После генерации и инсталляции ОС система готова к работе.



Следующий этап - загрузка (booting) - запуск компьютера посредством загрузки ядра ОС. При запуске компьютера первой запускается программа раскрутки (bootstrap program) - код, хранящийся в постоянной памяти (ROM) базовой системы ввода-


Ключевые термины

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

OS/2 - ОС, разработанная фирмой IBM для персональных компьютеров PS/2.

POSIX (Portable Operating Systems of unIX type) - стандарт для библиотек, системных вызовов и системных программ для операционных систем типа UNIX.

Win32 - Библиотеки (API) ОС Windows для 32-разрядных процессоров.

Байт-код (bytecode) - команды виртуальной Java-машины, построенные на основе постфиксной записи операндов.

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

Виртуальная машина - программный интерфейс, полностью аналогичный интерфейсу обычного компьютера без базового программного обеспечения.

Виртуальная машина Java (JVM) - виртуальная машина, исполняющая Java байткод.

Загрузка (booting) - запуск компьютера посредством загрузки ядра ОС.

Загрузчик классов (class loader) - компонента JVM, выполняющая загрузку классов в виртуальную машину во время выполнения программы.

Инсталляция - установка ОС на конкретный компьютер.

Интерфейс прикладного программирования (application programming interface - API) - набор библиотечных функций, реализующий некоторую функциональность, используемую программой.

Механизм - метод реализации некоторой функциональности в ОС.

Микроядро (micro-kernel) - принцип разработки ОС, который заключается в переносе максимально возможного числа модулей из системного в пользовательское "пространство", т.е. ОС разрабатывается таким образом, что большинство ее модулей выполняются в пользовательском режиме, а размер ядра минимизируется.

Политика - набор требований, целей, условий для реализации некоторой функциональности в ОС.

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

Программа раскрутки (bootstrap program) - код, запускаемый первым при включении компьютера, хранящийся в постоянной памяти (ROM) базовой системы


Краткие итоги

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

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

По принципу микроядра разработана ОС Windows NT, в которой имеются серверы для поддержки исполнения Win32- , OS/2 и POSIX-приложений.

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

В настоящее время широко используется виртуальная машина Java (JVM), выполняющая программе на Java байт-коде на реальной аппаратуре. JVM состоит из загрузчика классов, верификатора классов, интерпретатора байт-кода и just-in-time - компилятора.

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

При разработке ОС различают механизмы - методы реализации функциональностей - и политики - правила и требования к реализации функциональностей. Механизмы отделены от политик.

Реализация ОС долгое время выполнялась на ассемблерах. Начиная с UNIX, разработка ОС ведется на языках высокого уровня, чаще всего - на языке Си.

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



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



Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал