ОПЕРАЦИОННАЯ СИСТЕМА РЕАЛЬНОГО ВРЕМЕНИ ОС РВ Багет 3.0 Годунов А.Н. НИИСИ РАН, Москва.

Презентация:



Advertisements
Похожие презентации
Лекция 3. Исключения и прерывания в встроенных системах.
Advertisements

Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
Операционная система. Базовые понятия Операционная система – это комплекс программ, обеспечивающий контроль за существованием, распределением и использованием.
Лекция 6 Понятие операционных систем Учебные вопросы: 1. Характеристики ОС 2. Свободные и проприетарные ОС.
Выполнили: Мартышкин А. И. Кутузов В. В., Трояшкин П. В., Руководитель проекта – Мартышкин А. И., аспирант, ассистент кафедры ВМиС ПГТА.
Архитектура операционных систем. Архитектура ОС Состав модулей (компонент) ОС Структура связей между отдельными модулями ОС Принципы взаимодействия модулей.
Операционные системы Подготовила Подготовила студентка студентка 1 курса группы Э курса группы Э-108 Шпудейко Кристина Шпудейко Кристина.
Операционные системы Введение (часть 4) 4.Основы архитектуры операционных систем 4.1.Базовые понятия 4.2.Свойства ОС 4.3.Структура ОС 4.4.Логические функции.
Пользователь (User) Приложение (Software) Операционная система (ОС, Operating System, OS) Оборудование (Hardware)
Разработка библиотеки нитей POSIX реального времени Магистерская диссертация Студент: Фёдоров Александр, 418 гр. Научный руководитель: Гилязов С.С.
Архитектура операционных систем Семестр 2, Лекция 1.
О ПРЕДЕЛЕНИЕ. Операционная система, сокр. ОС (англ. operating system, OS ) комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают.
Терминология Микропроцессор (МП) - программно-управляемое устройство, осуществляющее процесс цифровой обработки информации и управления и построенное на.
Тема 1.3. Сервисное программное обеспечение. 1. Понятие операционного окружения Операцио́нное окруже́ние (англ. operating environment) среда, в которой.
Проектирование центральных и периферийных устройств Преподаватель: Мельников Максим Игоревич.
Программное обеспечение компьютера. Компьютер без программного обеспечения и операционной системы – это бесполезный хлам, груда железа.
Государственное образовательное учреждение среднего профессионального образования. «Прокопьевский политехнический техникум» Причины сбоев и технология.
Операционная система ПК Выполнила ученица 10 «Б» класса Панина Мария.
Архитектура операционной системы. Ядро и вспомогательные модули операционной системы При функциональной декомпозиции ОС модули разделяются на две группы:
Подготовила асс. кафедры СМК Воробьева Т.А.. Программное обеспечение (ПО) - комплекс программ, обеспечивающих обработку или передачу данных, а также предназначенных.
Транксрипт:

ОПЕРАЦИОННАЯ СИСТЕМА РЕАЛЬНОГО ВРЕМЕНИ ОС РВ Багет 3.0 Годунов А.Н. НИИСИ РАН, Москва

Цель разработки ОС РВ Багет 3.0 – развитие существующей свыше 10 лет ОС РВ Багет 2.0 c целью повышения надежности и "живучести. C ростом объема и сложности систем проблемы повышения надежности и "живучести становятся все более и более важными. Особенно острыми они становятся в тех случаях, когда разработку ведет большой коллектив или несколько коллективов из разных организаций.

Принципы построения системы Мобильность (portability). Использование стандартов. Разбиение системы на части с тем, чтобы сбои в одной части не влияли на работоспособность других. Наличие средств восстановления после сбоев, а также развитые средства диагностики и обработки ошибок. Гибкие средства планирования (периодические планирование, приоритетное планирование, планирование с вытеснением – preemptive scheduling). Управляемость (в частности наличие средств конфигурирования).

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

Использование стандартов Разработка ОС РВ Багет 3.0 базируется на спецификации ARINC 653 и стандарте POSIX Как POSIX, так и ARINC описывают интерфейс прикладных программ с ОС; при этом они существенно отличаются друг от друга (в частности, используют различную терминологию). Спецификация ARINC 653 выбрана в качестве основной. Реализованы все обязательные функции ARINC 653. Стандарт POSIX используется в той мере, в какой это не противоречит ARINC 653. Поддержка стандарта POSIX обеспечивает совместимость с ОС РВ Багет 2.0.

Стандарт POSIX Стандарт POSIX разрабатывался с целью унификации UNIX- подобных систем и тем самым способствовать мобильности прикладных программ. Изначально UNIX не был ориентирован на решение задач реального времени, но в процессе развития стандарта POSIX в него были добавлены функции, характерные для операционных систем реального времени (таймеры, семафоры, мьютексы, сигналы реального времени и др.). Стандарт POSIX имеет большой объем и описывает многие сотни функций.

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

Операционные системы, соответствующие спецификации ARINC 653 VxWORKS AE653 (Wind River), LynxOS (LynuxWorks, Inc.), INTEGRITY-178B (Green Hills Software Inc.).

Процессы Спецификация ARINC 653 предусматривает как пользовательские, так и системные процессы. Интерфейс пользовательских процессов должен соответствовать ARINC 653. Для системных процессов в ОС РВ Багет 3.0 используется POSIX- интерфейс. Таким образом, в рамках ОС РВ могут одновременно выполняться как ARINC-процессы (пользовательские процессы в терминологии ARINC), так и POSIX-процессы (системные процессы в терминологии ARINC). Все процессы, выполняются в пользовательском режиме процессора, кроме главного системного процесса, который выполняет функции ОС.

Порождение процессов Порождение процессов возможно только при инициализации модуля (в соответствии со спецификацией ARINC 653). Порождаемые процессы и выделяемые им ресурсы указываются при конфигурировании (интегратором).

Планирование В ОС РВ Багет 3.0 используется двухуровневое планирование: – планирование процессов; – планирование потоков управления. Планирование процессов в ОС РВ периодическое и определяется расписанием (циклограммой), которое составляется интегратором при конфигурировании. Возможно использование разных расписаний на разных этапах работы В расписании определяется основной период (major frame), который разбивается на (временные) окна. В расписании для каждого окна указывается список процессов, которые могут выполняться в данном окне.

Планирование потоков управления Для организации (псевдо)параллельных вычислений в рамках, как POSIX-, так и ARINC-процессов используются потоки управления. Планирование потоков управления производится на основании приоритетов потоков. Потоки ARINC-процессов конкурируют за использование процессора только с потоками одного и того же процесса. Потоки POSIX-процессов конкурируют за использование процессора со всеми потоками всех POSIX-процессов.

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

Каналы Каналы могут использоваться для передачи сообщений: – между процессами, выполняемыми на одном и том же процессорном модуле; – между процессами, выполняемыми на разных процессорных модулях; – между процессами и внешними устройствами. Интерфейс взаимодействия прикладных программ с каналами не зависит от способа передачи данных по каналам. Независимость интерфейса от способа передачи данных повышает мобильность прикладных программ и удобна при отладке. Каналы должны быть описаны при конфигурировании системы.

Методы повышения надежности Разбиение системы на части с тем, чтобы сбои в одной части не влияли на работоспособность других. Сохранение работоспособности даже в случаях сбоев при работе ОС. Контроль за переполнением стеков (как при работе прикладных программ, так и при работе ОС). Проверка аргументов при обращении к функциям ОС. Использование обширной системы тестов ОС, реализующей в частности все требования спецификации ARINC 653 к системе тестов (разработка ИСП РАН).

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

Распределение памяти При конфигурировании память модуля распределяется между ОС и процессами. Память ОС включает в себя следующие сегменты: – системные данные модуля; – программный код ОС. Каждому ARINC-процессу выделяется 3 сегмента: – программный код (и константы) процесса; – данные процесса; – системные данные процесса. Каждому POSIX-процессу выделяется 2 сегмента: – программный код (и константы) процесса; – данные процесса. Все POSIX-процессы используют общий сегмент системных данных (там же находятся и данные главного системного процесса). Код главного системного процесса находится в сегменте программного кода ОС.

Системные данные модуля Код ОС Системные данные процесса Код процесса Данные процесса … … … Системные данные POSIX- процессов Код процесса Данные процесса … … ARINC-процессыPOSIX-процессы Сегменты

Обработка ошибок Диагностика ошибок производится аппаратурой, операционной системой и прикладной программой. Обработка ошибок производится операционной системой и прикладной программой. Реакция на ошибки при выполнении ARINC-процесса определяется интегратором при конфигурировании системы. Интегратор определяет уровень ошибки, который может зависеть от типа ошибки и состояния системы. Возможны следующие уровни ошибок : – ошибки уровня модуля, – ошибки уровня процесса, – ошибки уровня потока управления. Ошибки при выполнении POSIX-процессов обрабатываются в соответствии со стандартом POSIX.

Ошибки уровня модуля и уровня процесса Реакция на ошибки уровня модуля и уровня процесса определяется интегратором при конфигурировании. Возможные виды реакции на ошибки уровня модуля: – рестарт модуля, – останов модуля, – игнорирование ошибки. Возможны виды реакции на ошибки уровня процесса: – рестарт процесса, – останов процесса, – игнорирование ошибки.

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

Конфигурирование Конфигурирование производится в два этапа: – конфигурирование ядра (аналогично конфигурированию ОС РВ Багет 2.0 ); – ARINC-конфигурирование (конфигурирование прикладных программ).

Конфигурирование ядра

ARINC-конфигурирование

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

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

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

Результаты измерений временных характеристик (модуль БТ с частотой 400МГц) Время переключения контекста (мкс) 1.8 Время задержки прерывания (мкс) 0.8 Время реакции потока (мкс) Скорость передачи сообщений длиной 2 Кб по каналу между процессами на одном модуле (Мб/сек ) 55 Скорость передачи сообщений длиной 2 Кб по каналу между процессами на различных модулях по шине VME (Мб/сек) 12 Перезагрузка процесса (мс) 33

Этапы разработки ОС РВ Багет г. – начало разработки; 2002 г. – выпуск 1-го издания (версия 2.06); 2004 г. – выпуск 2-го издания (версия 2.18); 2006 г. – выпуск 3-го издания (версия ); 2007 г. – выпуск 4-го издания (версия ); 2011 г. – выпуск 5-го издания (версия ); 2014 г. – выпуск 6-го (2.6) издания (версия ). ОС РВ Багет г. – начало разработки; 2008 г. – выпуск 1-го издания (версия ); 2011 г. – выпуск 2-го издания (версия 3.2.5); 2014 г. – выпуск 3-го (3.3) издания (версия ).

Список литературы I 1. IEEE Standard for Information Technology - Portable Operating System Interface (POSIX) - Part 2: System Interface. - IEEE Std , vol Avionics application software standard interface, Part 1 - Required services, Aeronautical radio, Inc, March, Годунов А.Н., Операционные системы реального времени Багет 3.0. Программные продукты и системы, 2010 г., 4. С Безруков В.Л., Годунов А.Н., Назаров П.Е., Солдатов В.А., Хоменков И.И. Введение в oc2000// Вопросы кибернетики / под ред. В.Б. Бетелина. – М.: НИИСИ РАН, C Годунов А.Н., Солдатов В.А., Операционные системы семейства Багет (сходство, отличия и перспективы). Программирование, 2014 г., 5. С Герлиц Е.А., Кулямин В.В., Максимов А.В., Петренко А.К.,Хорошилов А.В., Цыварев А.В. Тестирование операционных систем//Труды Института системного программирования РАН, том 26, 2014 г. Выпуск 1. С

Список литературы II 7. Wind river platform for safety critical ARINC 653// ources/platform_sc_arinc653_ds.pdf ources/platform_sc_arinc653_ds.pdf 8. LynxOS // pdf 9. Safety Critical Products: INTEGRITY-178B RTOS// Tanenbaum A.S.; Herder J.N.; Bos H., Can we make operating systems reliable and secure?// Computer, Volume 39, Issue 5, May P. 44 – 51.