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


Требования:

  1. Переносимость, т.е. написать ОС на переносимом языке, что позволит быстро переходить от одной архитектуре компьютера к другой
  2. Мультипроцессорная обработка и масштабируемость, т.е. создание ОС как масштабируемых и многопроцессорных позволит запустить одно и то же приложение как на однопроцессорных, так и на многопроцессорных машинах => повышается производительность компьютера за счет распределения работы между несколькими процессорами.
  3. Совместимость с POSIX (переносимый интерфейс ОС, основанный на UNIX). Это означает набор международных стандартов для интерфейсов ОС UNIX-типов. Стандарт POSIX (1988г) поощряет фирмы, реализующие UNIX-подобные интерфейсы, т.е. делающие их совместимыми, чтобы программисты могли легко переносить свои программы с одной системы на другую.
  4. Защита от несанкционированного доступа. Правила защиты включают обязательные требования - защиту ресурсов пользователя от других пользователей и возможность установления квот на системные ресурсы, для предотвращения захвата одним пользователем всех системных ресурсов.

Цели:

  1. Расширяемость, т.е. дополнить и модифицировать при изменении требований рынка.
  2. Переносимость, т.е. в соответствии с требованиями рынка код ОС должен легко переноситься с одного процессора на другой.
  3. Надежность и устойчивость, т.е. система должна защищать себя как от внутренних сбоев, так и от внешнего вторжения, вести себя предсказуемо и у приложений не должно быть возможности повредить ОС или нарушить ее функционирование.
  4. Совместимость, т.е. ее пользовательский интерфейс и интерфейс прикладных программ (API) должны быть совместимы с существующими системами Microsoft.


4.1. Модели, используемые при разработке ОС WinNT.

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

  • клиент-сервер. Служит, чтобы предоставить пользователям разные среды ОС (MS-DOS, OS/2, …, POSIX)
  • объектная. Служит для унификации управления системными ресурсами и выделения их пользователям
  • симметричная мультипроцессорная обработка (SMP). Она максимально использует возможности многопроцессорных машин.

Клиент-серверная модель ОС.

Модуль 4. Требования и цели при разработке современных ОС. - student2.ru

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

  1. Авария одного из серверов не нарушает работы остальных частей ОС.
  2. Повышается надежность работы ОС.
  3. Прекрасно соответствует сетевой модели вычислительных систем.

Исполнительная система - это части ОС (часть ядра), в которую входит набор компонентов, реализующих:

  1. Управление виртуальной памятью.
  2. Управление объектами (ресурсами).
  3. Управление вводом/выводом.
  4. Файловые системы.
  5. Взаимодействие между процессами.
  6. Защита от несанкционированного доступа.

Ядро выполняет функции ОС низкого уровня:

  1. Планирование потоков (процессов).
  2. Обработка прерываний.
  3. Многопроцессорная синхронизация.

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

  1. Доступ ОС к ресурсам и работа с ними унифицирована.
  2. Упрощается защита, т.к. для всех объектов она осуществляется одинаково.

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

Модуль 4. Требования и цели при разработке современных ОС. - student2.ru

В асимметричной мультипроцессорной модели обработки (ASMP) ОС и устройства ввода/вывода используют один из процессоров (A); другой полностью отдан под пользовательские потоки => нагрузка распределена неравномерно.
В симметричной модели (SMP) ОС выполняется на любом свободном процессоре или на всех процессорах одновременно; пользовательские потоки и устройства ввода/вывода также распределены между процессорами равномерно.
Преимущества SMP:

  1. Равномерно распределена системная нагрузка.
  2. Сокращается время простоя из-за неисправностей, т.к. при сбое одного процессора код ОС может использоваться на других.
  3. Данная модель переносима на другие типы процессоров.

Структура WinNT:

Модуль 4. Требования и цели при разработке современных ОС. - student2.ru


4.2. Защищенные подсистемы.

Термин "сервер" подразумевает, что каждая защищенная подсистема обеспечивает API (интерфейс прикладных программ), которые могут использовать прикладные программы.
Подпрограммы среды - это сервер пользовательского режима, реализующий API некоторой ОС.
Когда приложение вызывает функцию API, этот вызов доставляется с помощью LPC (локальный вызов процедур) подсистеме среды. Она использует этот вызов и возвращает результаты прикладному процессу, посылая другой LPC.
Самая важная подсистема среды - это подсистема Win32, которая предоставляет API прикладным программам графический интерфейс, управляет всем вводом пользователя и выводом приложений.
Исполнительная система.
Исполнительная система - это часть WinNT, использующаяся в режиме ядра.
Компоненты исполнительной системы:

  1. Диспетчер объектов: создает, поддерживает и уничтожает объекты исполнительной системы.
  2. Справочный монитор защиты - гарантирует выполнение политики защиты на локальном компьютере, оберегает ресурсы ОС, обеспечивает защиту объектов, т.е. ресурсов.
  3. Диспетчер процессов: создает, завершает процессы, приостанавливает и возобновляет их, хранит и выдает информацию о процессах.
  4. Средства локального вызова процедур (LPC): передают сообщения между клиентскими и серверными процессами, расположенными на одном и том же компьютере.
  5. Диспетчер виртуальной памяти (ДВП). Предоставляет каждому процессу большое, собственное адресное пространство и защищает его от других процессов.
    Если память используется слишком интенсивно, то ДВП переносит содержимое выбранного блока памяти на жесткий диск и загружает обратно, когда он снова понадобится (подкачка страниц).
  6. Ядро. Реагирует на прерывания, направляет потоки на выполнение.
  7. Система ввода/вывода. Состоит из групп компонентов, отвечающих за выполнение ввода/вывода на разнообразные устройства:
    • диспетчер ввода/вывода. Реализует средства ввода/вывода, независящие от типа устройства
    • файловая система - это драйверы, принимающие запросы файлового ввода/вывода и транслирующие их в запросы, привязанные к конкретному устройству
    • диспетчер кэша. Повышает производительность файлового ввода/вывода, сохраняя информацию, считанную с диска последней, в системной памяти
    • драйверы устройств. Это низкоуровневые драйверы, напрямую работающие с оборудованием для записи вывода или считывания ввода с физического устройства или из сети
    • сетевые драйверы - это драйверы файловой системы, передающие удаленные запросы ввода/вывода на машины в сети, и принимающие от них такие же запросы.

Модуль 4. Требования и цели при разработке современных ОС. - student2.ru

WinNT - это защищенная ОС, требующая, чтобы у каждого пользователя была своя учетная запись, и чтобы пользователь регистрировался в системе, прежде чем получить доступ к ней.
При включении компьютера загружается ОС, далее необходимо ввести пароль пользователя (1). Затем пароль передается подсистеме защиты, где он сравнивается с паролем, который находится в БД. Если он совпадает, то пользователь допускается к работе в системе (3). Если нет - на экран выводится диалоговое окно, где необходимо повторно ввести пароль.


4.3. Структура объектов (ресурсов).

Для унификации обработки различных объектов, диспетчеру объектов необходимо, чтобы каждый объект (ресурс) содержал в заданном месте несколько полей со стандартной информацией => для разделения стандартных данных от специфических, каждый объект разделен на две части: заголовок и тело.
Диспетчер объектов работает только с заголовком, а другие компоненты исполнительной системы с телом объекта.
Содержимое заголовка объекта.

Модуль 4. Требования и цели при разработке современных ОС. - student2.ru

Имя объекта делает его видимым другим процессам для совместного использования.
Каталог объекта обеспечивает иерархическую структуру, в которой хранятся имена объектов.
Дескриптор защиты определяет кто и каким образом может использовать данный объект.
Расход квоты - задает квоту на использование ресурсов, которая списывается с процесса, когда тот открывает описатель данного объекта.
Счетчик открытых описателей дает сведения о том, кто в данный момент использует объект.
БД открытых описателей дает сведения о том, кто ранее работал с данными объектами.

Наши рекомендации