Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ОС РВ 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; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.03 с.)
Главная | Случайная страница | Обратная связь