- •«Исследование применимости оценки функции Харрингтона для выбора операционных систем и операционных систем реального времени»
- •230100.68 «Информатика и вычислительная техника»
- •230100.68.30 «Информационные системы космических аппаратов и центров управления полетами»
- •Задание на выпускную квалификационную работу
- •Реферат
- •Глава 1. Аналитическая часть – обзор. 8
- •Глава 2. Параметризация ос и осрв. 59
- •Глава 3. Получение оценки ос и осрв 69
- •Введение
- •Ключевые слова
- •Список сокращений
- •Глава 1. Аналитическая часть.
- •Виды и классификации ос и осрв
- •Классификации ос.
- •1.1.1.2. Классификации осрв
- •Описание функционала ос и осрв
- •Основные параметры ос
- •Основные параметры осрв
- •Описание особенностей ос и осрв
- •Выбор параметров ос и осрв.
- •Общие характеристики Windows.
- •Общие характеристики Linux.
- •Проблема выбора ос. Выбор операционной системы
- •Выбор параметров для оценки ос.
- •Поддержка многопроцессорности.
- •Многозадачности.
- •Модули, пакеты, библиотеки.
- •Производительность
- •Сетевые средства
- •Модульная структура
- •Поддержка: возможность обновлений и редакций
- •Сопровождение (литература, помощь, обратная связь)
- •Набор функций для обработки информации
- •Устойчивость
- •Совместимость
- •Место, заниманиемое на диске.
- •13. Возможность установки на иное оборудование
- •Методы принятия решения при параметрическом выборе (примеры функций и методов).
- •Параметрические и непараметрические гипотезы
- •Состоятельность и несмещённость критериев
- •1.2.6. Постановка задачи многокритериального выбора.
- •Выводы к разделу
- •Глава 2. Параметризация ос и осрв.
- •2.1. Применения функции «желательности» Харрингтона в технических системах
- •2.3. Выбор ос и осрв для сравнения
- •2.4. Описание методики исследования
- •Выводы к главе 2.
- •Глава 3. Получение оценки ос и осрв
- •Выбор аппаратной платформы и последовательность тестирования ос
- •3.2. Расчет оценок ос и осрв.
- •3.2.1. Расчет ос – визуализация по итогам исследования
- •Заключение по результатам исследования ос.
- •3.3.2. Расчет осрв – визуализация по итогам исследования
- •Итоговые оценки осрв
- •Экспертная оценка осрв
- •3.3. Выводы и выработка рекомендации по выбору ос и осрв с помощью Функции желательности Харрингтона.
- •Список использованной литературы:
Основные параметры осрв
Указанный абстрактный уровень предоставляет для прикладного ПО пять основных категорий сервисов.
Управление задачами. Самая главная группа сервисов. Позволяет разработчикам приложений проектировать программные продукты в виде наборов отдельных программных фрагментов, каждый из которых может относиться к своей тематической области, выполнять отдельную функцию и иметь свой собственный квант времени, отведенный ему для работы. Каждый такой фрагмент называется задачей. Сервисы в рассматриваемой группе обладают способностью запускать задачи и присваивать им приоритеты. Основной сервис здесь — планировщик задач. Он осуществляет контроль за выполнением текущих задач, запускает новые в соответствующий период времени и следит за режимом их работы.
Динамическое распределение памяти. Многие (но не все) ядра ОСРВ поддерживают эту группу сервисов. Она позволяет задачам заимствовать области оперативной памяти для временного использования в работе приложений. Часто эти области впоследствии переходят от задачи к задаче, и посредством этого осуществляется быстрая передача большого количества данных между ними. Некоторые очень малые по размеру ядра ОСРВ, которые предполагается использовать в аппаратных средах с строгим ограничением на объём используемой памяти, не поддерживают сервисы динамического распределения памяти.
Управление таймерами. Встроенные системы предъявляют жёсткие требования к временным рамкам выполнения задач, в состав ядра ОСРВ включается группа сервисов, обеспечивающих управление таймерами для отслеживания лимита времени, в течение которого должна выполняться задача. Эти сервисы измеряют и задают различные промежутки времени (от 1 мкс и выше), генерируют прерывания по истечении временных интервалов и создают разовые и циклические будильники.
Взаимодействие между задачами и синхронизация. Сервисы данной группы позволяют задачам обмениваться информацией и обеспечивают её сохранность. Они так же дают возможность программным фрагментам согласовывать между собой свою работу для повышения эффективности. Если исключить эти сервисы из состава ядра ОСРВ, то задачи начнут обмениваться искаженной информацией и могут стать помехой для работы соседних задач.
Контроль устройства ввода/вывода. Сервисы этой группы обеспечивают работу единого программного интерфейса, взаимодействующего со всем множеством драйверов устройств, которые являются типичными для большинства встроенных систем.
В дополнение к сервисам ядра, многие ОСРВ предлагают линейки дополнительных компонентов для организации таких высокоуровневых понятий, как файловая система, сетевое взаимодействие, управление сетью, управление базой данных, графический пользовательский интерфейс и т. д. Хотя многие из этих компонентов намного больше и сложнее, чем само ядро ОСРВ, они, тем не менее, основываются на его сервисах. Каждый из таких компонентов включается во встроенную систему, только если её сервисы необходимы для выполнения встроенного приложения и только для того, чтоб свести расход памяти к минимуму.
Отличия от операционных систем общего назначения.
Многие операционные системы общего назначения также поддерживают указанные выше сервисы. Однако ключевым отличием сервисов ядра ОСРВ является детерминированный, основанный на строгом контроле времени, характер их работы. В данном случае под детерминированностью понимается то, что для выполнения одного сервиса операционной системы требуется временной интервал заведомо известной продолжительности. Теоретически это время может быть вычислено по математическим формулам, которые должны быть строго алгебраическими и не должны включать никаких временных параметров случайного характера. Любая случайная величина, определяющая время выполнения задачи в ОСРВ, может вызвать нежелательную задержку в работе приложения, тогда следующая задача не уложится в свой квант времени, что послужит причиной для ошибки.
В этом смысле операционные системы общего назначения не являются детерминированными. Их сервисы могут допускать случайные задержки в своей работе, что может привести к замедлению ответной реакции приложения на действия пользователя в заведомо неизвестный момент времени. При проектировании обычных операционных систем разработчики не акцентируют своё внимание на математическом аппарате вычисления времени выполнения конкретной задачи и сервиса. Это не является критичным для подобного рода систем.
Планирование задач
Работа планировщика или диспетчер операционной системы.
Большинство ОСРВ выполняют планирование задач, руководствуясь следующей схемой. Каждой задаче в приложении ставится в соответствие некоторый приоритет. Чем больше приоритет, тем выше должна быть реактивность задачи. Высокая реактивность достигается путём реализации подхода приоритетного вытесняющего планирования (preemptive priority scheduling), суть которого заключается в том, что планировщику разрешается останавливать выполнение любой задачи в произвольный момент времени, если установлено, что другая задача должна быть запущена незамедлительно.
Описанная схема работает по следующему правилу: если две задачи одновременно готовы к запуску, но первая обладает высоким приоритетом, а вторая низким, то планировщик отдаст предпочтение первой. Вторая задача будет запущена только после того, как завершит свою работу первая.
Возможна ситуация, когда задача с низким приоритетом уже запущена, а планировщик получает сообщение, что другая задача с более высоким приоритетом готова к запуску. Причиной этому может послужить какое-либо внешнее воздействие (прерывание от оборудования), как, например, изменение состояния переключателя устройства, управляемого ОСРВ. В такой ситуации планировщик задач поведет себя согласно подходу приоритетного вытесняющего планирования следующим образом. Задаче с низким приоритетом будет позволено выполнить до конца текущую машинную команду (но не команду, описанную в исходнике программы языком высокого уровня), после чего выполнение задачи приостанавливается. Далее запускается задача с высоким приоритетом. После того, как она прорабатывает, планировщик запускает прерванную первую задачу с машинной команды, следующей за последней выполненной.
Каждый раз, когда планировщик задач получает сигнал о наступлении некоторого внешнего события (триггер), причина которого может быть как аппаратная, так и программная, он действует по следующему алгоритму.
Определяет, должна ли текущая выполняемая задача продолжать работать.
Устанавливает, какая задача должна запускаться следующей.
Сохраняет контекст остановленной задачи (чтобы она потом возобновила работу с места остановки)
Устанавливает контекст для следующей задачи.
Запускает эту задачу.
Эти пять шагов алгоритма также называются переключением задач.
Выполнение задачи
В обычных ОСРВ задача может находиться в 3-х возможных состояниях:
Задача выполняется;
Задача готова к выполнению;
Задача заблокирована.
Большую часть времени основная масса задач заблокирована. Только одна задача может выполняться на центральном процессоре в текущий момент времени. В примитивных ОСРВ список готовых к исполнению задач, как правило, очень короткий, он может состоять не более чем из двух-трёх наименований.
Основная функция администратора ОСРВ заключается в составлении такого планировщика задач.
Если в списке готовых к выполнению задач последних имеется не больше двух-трех, то предполагается, что все задачи расположены в оптимальном порядке. Если же случаются такие ситуации, что число задач в списке превышает допустимый лимит, то задачи сортируются в порядке приоритета.
Алгоритмы планирования
В настоящее время для решения задачи эффективного планирования в ОСРВ наиболее интенсивно развиваются два подхода.
Статические алгоритмы планирования (RMS, Rate Monotonic Scheduling). Используют приоритетное вытесняющее планирование. Приоритет присваивается каждой задаче до того, как она начала выполняться. Преимущество отдается задачам с самыми короткими периодами выполнения.
Динамические алгоритмы планирования (EDF, Earliest Deadline First Scheduling). Приоритет задачам присваивается динамически, причем предпочтение отдается задачам с наиболее ранним предельным временем начала (завершения) выполнения.
При больших загрузках системы EDF более эффективен, нежели RMS.
Взаимодействие между задачами и разделение ресурсов.
Многозадачным системам необходимо распределять доступ к ресурсам. Одновременный доступ двух и более процессов к какой либо области памяти или другим ресурсам представляет определённую угрозу. Существует 3 способа решения этой проблемы.
Временное блокирование прерываний
Двоичные семафоры
Посылка сигналов
ОСРВ обычно не используют первый способ, потому что пользовательское приложение не может контролировать процессор столько, сколько хочет. Однако, во многих встроенных системах и ОСРВ позволяется запускать приложения в режиме ядра для доступа к системным вызовам и даётся контроль над окружением исполнения без вмешательства ОС.
На однопроцессорных системах наилучшим решением является приложение запущенное в режиме ядра, которому позволено блокирование прерываний. Пока прерывание заблокировано, приложение использует ресурсы процесса единолично и никакая другая задача или прерывание не может выполняться. Таким образом, защищаются все критичные ресурсы. После того как приложение завершит критические действия, оно должно разблокировать прерывания, если таковые имеются. Временное блокирование прерывания позволено только тогда, когда самый долгий промежуток выполнения критической секции меньше, чем допустимое время реакции на прерывание. Обычно этот метод защиты используется только когда, длина критического кода не превышает нескольких строк и не содержит циклов. Этот метод идеально подходит для защиты регистров.
Когда длина критического участка больше максимальной или содержит циклы, программист должен использовать механизмы идентичные или имитирующие поведение систем общего назначения, такие как семафоры и посылка сигналов.
Выделение памяти
Следующим проблемам выделения памяти в ОСРВ уделяется больше внимания, нежели в операционных системах общего назначения.
Во-первых, скорости выделения памяти. Стандартная схема выделения памяти предусматривает сканирование списка неопределённой длины для нахождения свободной области памяти заданного размера, а это неприемлемо, так как в ОСРВ выделение памяти должно происходить за фиксированное время.
Во-вторых, память может стать фрагментированной в случае разделения свободных её участков уже запущенными процессами. Это может привести к остановке программы из-за её неспособности задействовать новый участок памяти. Алгоритм выделения памяти, постепенно увеличивающий фрагментированность памяти, может успешно работать на настольных системах, если те перезагружаются не реже одного раза в месяц, но является неприемлемым для встроенных систем, которые работают годами без перезагрузки.
Простой алгоритм с фиксированной длиной участков памяти очень хорошо работает в несложных встроенных системах.
Также этот алгоритм отлично функционирует и в настольных системах, особенно тогда, когда во время обработки участка памяти одним ядром следующий участок памяти обрабатывается другим ядром. Такие оптимизированные для настольных систем ОСРВ, как Unison Operating System или DSPnano RTOS, предоставляют указанную возможность.
Первая функционально полная ОС – OS/360. Разработка и внедрение ОС позволили разграничить функции операторов, администраторов, программистов, пользователей, а также существенно (в десятки и сотни раз) повысить производительность ЭВМ и степень загрузки технических средств. Версии OS/360/370/375 – MFT (мультипрограммирование с фиксированным количеством задач), MVT (с переменным количеством задач), SVS (система с виртуальной памятью), SVM (система виртуальных машин) – последовательно сменяли друг друга и во многом определили современные представления о роли ОС в общей иерархии систем управления данными и задачами при обработке данных на ЭВМ.
