Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
ОС РВ USIX : основные принципы построения и структура.
Рассмотрим принципы проектирования операционных систем реального времени на примере отечественной UNIX-подобной операционной системы USIХ [5]. Операционная система USIХ является лицензионно чистой операционной системой, разработанной коллективом Института электронных управляющих машин. Это обеспечивает технологическую независимость в использовании системы и гарантирует сопровождение на всем жизненном цикле ее существования. При этом достигаются такие преимущества относительно соответствия принципам и стандартам открытых систем, как расширяемость и масштабируемость. Расширяемость системы связана с более длительным сроком жизни программного обеспечения УВК (около 10 лет) по сравнению с аппаратным обеспечением (1 — 3 года) и отсюда — с необходимостью постоянного расширения функциональных возможностей системы. Масштабируемость в данном случае рассматривается как развитие расширяемости: • возможности генерации и конфигурации системы под различные технические требования (от встраиваемых применений до использования в качестве серверов); « возможности настройки и адаптации системы, в наилучшей степени удовлетворяющей и соответствующей особенностям как аппаратной платформы, так и прикладной области. В настоящее время ОС USIХ реализована на однопроцессорных и многопроцессорных SМР-системах с архитектурой Intel. К основным отличительным особенностям USIХ относятся [34]: • полностью прерываемое ядро; • поддержка многопроцессорности; • устойчивая файловая система; • ядро небольшого размера; • динамически загружаемые драйверы внешних устройств; • динамически выделяемые буферы для ввода-вывода и выгрузки процессов; • реализация процессов-серверов с возможностью динамического погружения в адресное пространство ядра; • средства обеспечения безопасности уровня ВЗ; • развитые средства поддержки реального времени; • открытость и переносимость. Рассмотрим принципы построения USIХ. В операционной системе USIX основными понятиями являются: Процесс - единица потребления ресурсов. Порт - точка поступления сообщений и их идентификации. Объект памяти - связанное множество страниц оперативной или внешней памяти, объединенных общими характеристиками. Сервер -вспомогательный процесс, реализующий одну из функций операционной системы (например, файловый сервер). Семафор -двоичный семафор, обеспечивающий синхронизацию доступа к общим ресурсам. Спинлок —точка синхронизации многопроцессорного доступа к ресурсу. Если ресурс занят, процессор, как правило, ожидает его освобождения. Регион —физические страницы объекта памяти, которые могут находиться на диске, в оперативной памяти или в специально резервируемой на диске области выгрузки. Сегмент -виртуальное окно в адресном пространстве процесса, отображающее какой-либо регион. На рис. 4.1 представлена структура ядра современных ОС UNIХ, а на рис. 4.2 - структура USIХ, базирующаяся на концепции микроядра. Из сравнения этих структур видно, что ядро USIХ выполняет только самые необходимые функции: управление памятью; планирование и взаимодействие процессов; обработку системных вызовов; службу времени. Драйверы, файловая система и другие функции системы реализованы в виде специальных процессов-серверов. Ядро USIX поддерживает два интерфейса: 1. Пользовательский интерфейс (РOSIХ/SVID — System V Interface Definition), реализованный на уровне стандартных системных функций, соответствующих стандартам SVID и Р0SIХ. 2. Внутренний интерфейс для взаимодействия ядра с системными процессами, осуществляемый с помощью специальных системных вызовов (usixcalls) (прежде всего используется драйверами и серверами) и, дополнительно, с помощью механизма управления сообщениями и объектами памяти. Сообщения являются средством обмена данными между системными компонентами ядра, а также средством синхронизации такого обмена. Сообщения также обеспечивают коммуникации между пользовательскими задачами и пользователя с ядром. Сообщения могут приниматься только из портов и посылаться в порты. Для управления общими структурами данных используется системная структура — объект памяти, который содержит информацию о физических характеристиках (физический адрес и размер объекта); об отображении и защите объекта памяти; об идентификации объекта памяти; о синхронизации доступа, а также спецификацию о создании и удалении объекта памяти. Адресное пространство процесса включает совокупность объектов памяти, к которым программа может иметь доступ. Ядро USIX поддерживает следующие типы объектов памяти: • текст программы; • инициализированные данные; • неинициализированные данные; • модифицированные данные; • стек; • буфер FIFО (First In, First Out);
• буфер сообщений IРС ( InterProcess Communication); • открытый файл; • разделяемые данные; • разделяемые библиотеки и т.д. Идентификация объектов памяти поддерживается через структуру «регион» (region). Регион определяет место физического размещения объекта памяти: оперативная память, файл на (страницы 182-183)
диске, область выгрузки. Когда создается объект памяти, структура region заполняется соответствующими данными. Каждый процесс имеет возможность отобразить необходимый объект памяти (полностью или частично) в свое адресное пространство, установив виртуальный адрес и смещение от начала региона. Такое отображение устанавливается с помощью описания сегмента памяти. При этом определяются также права процесса относительно объекта памяти. Описания сегментов памяти индивидуальны для каждого процесса и управляются ядром. Отображение объекта памяти может выполняться ядром или пользователем. Для синхронизации доступа к объекту памяти применяются различные механизмы синхронизации. Так, в случае работы с разделяемой памятью используется механизм семафоров, а для синхронизации доступа к общим внутренним структурам данных используется механизм спинлоков. Концепция объекта памяти имеет следующие преимущества: • оперативная память используется как общий ресурс и назначается объектам памяти только на определенный период времени; • сервер файловой системы не используется при операциях ввода-вывода. Его главное назначение - управление дисковым пространством и его распределение для вновь создаваемых файлов; • упрощается алгоритм работы драйвера диска, основной функцией которого остается обмен между оперативной памятью и диском. Поддержка РВ в USIX Для обеспечения режима реального времени в USIХ предусмотрен целый ряд возможностей, гарантирующих оптимальное время реакции: • приоритетная и круговая диспетчеризация; • динамическое и статическое назначение приоритетов пользовательским задачам; • захват ресурсов памяти для обеспечения быстрого переключения задач путем фиксации страниц в оперативной памяти; • возможность подключения к источникам прерываний для программирования нестандартных устройств; • возможность отображения в адресное пространство процесса пользователя любых объектов, включая файлы на дисках, физическую память, порты ввода-вывода; • синхронизация взаимодействия процессов пользователя с помощью традиционных механизмов UNIХ (семафоры, очереди сообщений, разделяемая память, именованные и неименованные программные каналы ввода-вывода) и дополнительных возможностей (сообщения USIХ, серверы, механизм событий). В структуре ядра USIХ реализованы новые алгоритмы, ориентированные на поддержку реального времени. Среди них следует отметить полную прерываемость ядра системы и механизм обработки прерываний. Традиционные UNIХ-системы не разрешают переключения процессов во время выполнения системной фазы ядра. Ядро является как бы одной большой критической секцией, которая должна быть выполнена до конца. Только после выполнения критической секции, что может потребовать значительного времени, возможно переключение на более приоритетный процесс. В отличие от этого ядро USIХ является полностью прерываемым. Выполнение процесса может быть прервано независимо от его фазы (пользовательской или системной), и управление может быть передано процессу с более высоким приоритетом. При этом причинами прерываний могут быть следующие события: • истечение кванта времени владения процессором у текущего процесса; • наступление запланированных событий по времени; • прерывание от устройств ввода-вывода; • изменение приоритета процессов; • освобождение ресурсов ядра (двоичных семафоров); • посылка сообщения более приоритетному ожидающему процессу. Таким образом, менее приоритетная задача во время выполнения системного вызова может быть прервана и управление передано более приоритетной задаче. Возможность переключения задач во время выполнения системного вызова является необходимым требованием для гарантированности времени реакции системы, однако недостаточным для гарантии минимального времени ответа. Другим важным аспектом взаимодействия ОС с внешней средой является стратегия обработки внешних прерываний. В традиционных UNIX-системах программы обработки прерываний, как правило, имеют более высокий приоритет по отношению к пользовательским процессам. При этом если прерывание происходит в результате требования самого низкоприоритетного процесса (например, подсистемы вывода на печать), то даже самый приоритетный процесс будет прерван и отложен до окончания обработки прерывания. Система же USIX предоставляет возможность приоритетного планирования программной обработки прерываний и разбиения обработки на этапы. Аппаратное прерывание может прерывать даже самый высокоприоритетный процесс, поскольку целый ряд устройств не допускает задержки обслуживания прерываний. В системе USIX первоначальная программа обработки прерывания всегда выполняет только самые минимальные действия, диктуемые требованиями аппаратных средств. Далее информация о прерывании устанавливается в очередь отложенных прерываний к соответствующему серверу. Таким образом, высокоприоритетный процесс будет прерван лишь на время, требуемое для сохранения информации о прерывании. Дальнейшая обработка прерывания будет продолжена соответствующим сервером в соответствии с его приоритетом. Такой механизм обработки прерывания в сочетании с прерываемостью ядра и рядом других возможностей обеспечивает гарантированное время реакции системы на события реального времени. Надежность. Система USIX использует все доступные аппаратные средства для локализации неисправностей аппаратуры. В рамках многопроцессорной системы отказ одного процессорного элемента (РЕ) не влечет за собой «развала» системы, так как планирование работы процессоров децентрализовано. В случае зависания или отказа РЕ встроенная система тайм-аутов позволяет вернуть все захваченные ресурсы ядра и, таким образом, обеспечивает плавную реорганизацию системы вместо полного отказа. Ядро USIX поставляется пользователю в двоичном коде в виде отладочной версии и рабочей версии. Отладочная версия USIX содержит 32 встроенных отладочных режима, позволяющих пользователю получить различные «срезы» выполнения задачи и, таким образом, быстро локализовать ошибки в своих программах. Среди таких «срезов» можно отметить отслеживание следующих действий: • выполнение системных вызовов; • обработку сигналов; • работу системы ввода-вывода; • порождение (fork), выполнение (ехес) и завершение (ехit) процессов; • работу подсистемы взаимодействия процессов (разделяемая память (shm), семафоры (sem), сообщения (msg). Кроме того, отладочная версия содержит ряд встроенных проверок целостности внутренних данных ядра, что позволяет легко обнаруживать ошибки, допущенные пользователем при расширении системы (создание собственных серверов, драйверов ввода-вывода). Рабочая версия USIX не содержит перечисленных отладочных возможностей и поэтому обеспечивает более высокую (на 20— 30%) производительность. Соответствие стандартам. USIX является операционной системой семейства UNIX и относительно программного интерфейса соответствует международным стандартам Р0SIХ 1003.1, Р081Х 1003.2 и SVID (System V Interface Definition. Issue 3). Система USIX совместима на уровне исходных и двоичных кодов с системой UNIX System V и на уровне исходных кодов — с системой ВSD4.3. В приложении 6 приведен краткий перечень основных стандартов, связанных с ОС семейства UNIХ. |
Последнее изменение этой страницы: 2019-04-21; Просмотров: 245; Нарушение авторского права страницы