270 likes | 559 Views
Московский Физико-Технический Институт ( государственный университет ). Разработка операционной системы жесткого режима реального масштаба времени на базе ОС Solaris ( E90 ) для ВК Эльбрус-90микро. Денис Федотов , 2 1 8 группа. Научный руководитель: Тухватуллин Гумер Мингатович.
E N D
Московский Физико-Технический Институт (государственный университет) Разработка операционной системы жесткогорежима реального масштаба времени на базе ОС Solaris (E90) для ВК Эльбрус-90микро Денис Федотов, 218группа Научный руководитель: Тухватуллин Гумер Мингатович Москва 2008
Требования к режиму реального времени • Время входа в процедуру прерывания не более 20 микросекунд. • Время переключения процесса из процедуры прерывания на другой процесс не должна превышать 100 микросекунд. • Время передачи управления не должна превышать 300 микросекунд. • Вся деятельность системы должна быть основана на приоритетном планировании всех процессов, обработчиков внешних прерываний и семафорной синхронизации с возможностью управления приоритетами из ФПО. • Должна быть предоставлена возможность резидентации ресурсов ВК: • резидентация оперативной памяти. • назначение одного или нескольких процессоров для исполнения конкретного процесса.
Выбор направления для создания ОС РВ • МСВС – нет поддержки режима РМВ. • Solaris 2.5.1 – поддержка МРРМВ. • VxWorks – не поддерживает многопроцессорные симметричные системы, вся работа в контексте ядра. • Linux – плохая система синхронизации и обработки прерываний. Система МРРВ. • LynxOS – дорого стоит. Необходимость портировать на новую архитектуру.
Постановка задачи • Разработка метода анализа временных характеристик операционной системы. • Анализ существующих реализаций ОС E90 в качестве систем реального маштаба времени. • Разработка компонентов жесткого режима РМВ ОС E90 на основе произведенного анализа для достижения заданных характеристик. • Анализ характеристик полученной системы.
Методы и средства анализа временных характеристик • Специализированная ячейка mtst. • Набор тестовых программ. • Трассировка ОС. • Процессорный JTAG. • Логический анализатор.
Ячейка MTST • Генератор SBus прерываний. • Счетчик времени с точностью до 40 наносекунд. • Позволяет полностью замерить все временные характеристики от момента генерации прерывания до момента выхода на пользователя.
Измерение времени реакции на прерывание
Анализ существующих реализаций ОС E90 в качестве систем реального времени • Время входа в процедуру прерывания: 245 микросекунд. • Время переключения процесса из процедуры прерывания на другой процесс: 3721 микросекунд. • Время передачи управления: 3756 микросекунд. • Время переключения процессов: 367микросекунд.
Проблемы • Неправильная, для ОС жесткого режима РМВ, работа планировщика. • Нет возможности отключения процессоров от обработки прерываний. • Нет возможности отключить миграцию процессов. • Нет возможности отключить на любом процессоре выполнение задач к нему не привязанных. • Нет возможности привязывать процессы к процессорам. • Нет возможности генерировать прерывания на заданном процессоре. • Нет выбора режимов обработки прерываний. • Длительная работа прерывания clock, блокирующая работу на ЦП.
Механизмы планирования • Существуют очереди готовых к исполнению РТ процессов для каждого процессора и одна общая очередь процессов для исполнения на любом процессоре. • Только система реального времени может привязать какой-то поток управления (thread) к определенному процессу. • Только ФПО имеет право перемещать привязанные потоки управления с одного процессора на другой. • Вся работа подчиняется правилам абсолютных приоритетов.
Отключения процессоров от обработки прерываний • Строго необходимо. Так как это позволяет гарантировать время переключения, и непрерывность работы задачи ФПО. • Все прерывания обрабатывает 1 или 2 процессора.
миграция процессов • Миграция процессов может внести дополнительную задержку. • Процессы ФПО должны быть привязаны к процессорам. Idle User FP
Отключение на процессоре выполнение задач к нему не привязанных • Необходимо если существует поток или набор потоков задачи ФПО, для которых времена отклика наиболее критично. • Позволяет ограничить круг задач исполняемых на данном процессоре.
Обслуживание двух уровневого прерывания в «Эльбрус – 90 микро» • В операционную систему приходит заявка на обработку прерывания высокого уровня. • Это прерывание обрабатывается на любом процессоре, на котором разрешена обработка прерываний. • Обработчик прерывания высокого уровня генерирует софтверное прерывание низкого уровня (1 или 4 уровня по MBus). • Обработчик нижнего уровня запускается на любом процессоре, на котором разрешена обработка прерываний. И если он запустился не на том процессоре, на котором ожидает ФПО, а так и будет в силу того, что на нем отключена обработка внешних прерываний, то он посылает внутреннее прерывание 14 уровня чтобы запустить планировщик. • Планировщик запускает на исполнение задачу ФПО, если нет ничего более приоритетного.
Реализована другая схема • В операционную систему приходит заявка на обработку прерывания высокого уровня. • Это прерывание обрабатывается на любом процессоре, на котором разрешена обработка прерываний. • Обработчик прерывания высокого уровня генерирует софтверное прерывание низкого уровня (1,4,6,7,8 или 9 уровень по MBus). • Обработчик нижнего уровня запускается на процессоре, на котором ФПО ждет приход этого прерывания. • Запускается планировщик, который ставит задачу ФПО на исполнение.
Классические этапы обработки прерывания • Т1 – время прихода прерывания в процессор. • Т2 – время входа в ОС. • Т3 – время входа в системный обработчик прерывания (процедура драйвера) для исполнения TopHalf . • Т4 – окончание TopHalf. • T5 – Начало BottomHalf. • Т6 – окончание BottomHalf и активизация процесса ФПО (постановка процесса в очередь готовых к исполнению процессов). • Т7 – начало работы планировщика для переключения процессора на процесс ФПО. • Т8 – начало работы ФПО процесса для реакции на прерывание.
Причины возможных задержек при входе в прерывание • Т1-Т2 – задержка входа в ОС. • Т2-Т3 – Это время работы ядра ОС. • Т3-Т4 – время исполнения TopHalf. • T4 – Т5 – задержка начала исполнения BottomHalf. • T5-Т6 – время работы BottomHalf. • Т6-Т7 – время задержки до начала работы планировщика. • Т7-Т8. Время работы планировщика процессов.
Выбор режима обработки прерываний Уровни Обработчики 1 2 3 14 15 1. Последовательная 2. Оптимальная 3. Честная
Длительная работа прерывания clock • Прерывание высокого уровня. • Работа clock до 400 микросекунд. Решение • Разбить на 2 части. • Первая часть обрабатывается на том процессоре на который она придет. • Вторая часть: • Как отдельный thread с системным приоритетом. • Как прерывание низкого уровня, на отдельно выделенном для этого процессоре, не обрабатывающем другие прерывания.
Доработка драйверов • Оптимизация работы драйверов. • Доработка драйверов с учетом новых возможностей ядра.
Работа с памятью • выравнивать адреса по началу страницы памяти. • регулировать размер структур таким образом, чтобы размер структуры был кратен длине страницы (4096 Байт).
Результаты • Реализовано и внедрено в программное обеспечение ВК «Эльбрус-90микро» новое ядро удовлетворяющее требованиям поставленной задачи и обеспечивающее эффективное время переключения процессов и обработки прерываний.