Денис Федотов , 2 1 8 группа

27
Разработка операционной системы Разработка операционной системы жесткого жесткого режима реального масштаба режима реального масштаба времени времени на базе на базе ОС ОС Solaris Solaris ( ( E90 E90 ) для ВК Эльбрус- ) для ВК Эльбрус- 90микро 90микро Денис Федотов Денис Федотов , , 2 2 1 1 8 8 группа группа Научный руководитель: Тухватуллин Гумер Мингатович Московский Физико-Технический Институт (государственный университет) Москва 2008

Upload: mali

Post on 17-Mar-2016

86 views

Category:

Documents


2 download

DESCRIPTION

Московский Физико-Технический Институт ( государственный университет ). Разработка операционной системы жесткого режима реального масштаба времени на базе ОС Solaris ( E90 ) для ВК Эльбрус-90микро. Денис Федотов , 2 1 8 группа. Научный руководитель: Тухватуллин Гумер Мингатович. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Денис Федотов ,  2 1 8 группа

Разработка операционной системы жесткогоРазработка операционной системы жесткого режима реального масштаба времени режима реального масштаба времени

на базе на базе ОС ОС SolarisSolaris ( (E90E90) для ВК Эльбрус-90микро) для ВК Эльбрус-90микро

Денис ФедотовДенис Федотов, , 221188 группагруппа

Научный руководитель: Тухватуллин Гумер Мингатович

Московский Физико-Технический Институт

(государственный университет)

Москва 2008

Page 2: Денис Федотов ,  2 1 8 группа

Требования к режиму Требования к режиму реального времениреального времени

Время входа в процедуру прерывания не более 20 Время входа в процедуру прерывания не более 20 микросекунд.микросекунд.Время переключения процесса из процедуры Время переключения процесса из процедуры прерывания на другой процесс не должна превышать 100 прерывания на другой процесс не должна превышать 100 микросекунд. микросекунд. Время передачи управления не должна превышатьне должна превышать 300 микросекунд.микросекунд.Вся деятельность системы должна быть основана на Вся деятельность системы должна быть основана на приоритетном планировании всех процессов, приоритетном планировании всех процессов, обработчиков внешних прерываний и семафорной обработчиков внешних прерываний и семафорной синхронизации с возможностью управления синхронизации с возможностью управления приоритетами из ФПО.приоритетами из ФПО. Должна быть предоставлена возможность резидентации Должна быть предоставлена возможность резидентации ресурсов ВК:ресурсов ВК:

– резидентация оперативной памяти.резидентация оперативной памяти.– назначение одного или нескольких процессоров для назначение одного или нескольких процессоров для

исполнения конкретного процесса.исполнения конкретного процесса.

Page 3: Денис Федотов ,  2 1 8 группа

Выбор направления для Выбор направления для создания ОС РВсоздания ОС РВ

МСВС – нет поддержки режима РМВ.МСВС – нет поддержки режима РМВ.Solaris 2.5.1 – поддержка МРРМВ.Solaris 2.5.1 – поддержка МРРМВ. VxWorks – не поддерживает VxWorks – не поддерживает многопроцессорные симметричные системы, многопроцессорные симметричные системы, вся работа в контексте ядра.вся работа в контексте ядра.Linux – плохая система синхронизации и Linux – плохая система синхронизации и обработки прерываний. Система МРРВ.обработки прерываний. Система МРРВ.LynxOS – дорого стоит. Необходимость LynxOS – дорого стоит. Необходимость портировать на новую архитектуру.портировать на новую архитектуру.

Page 4: Денис Федотов ,  2 1 8 группа

Постановка задачиПостановка задачи

Разработка метода анализа временных Разработка метода анализа временных характеристик операционной системы.характеристик операционной системы.Анализ существующих реализаций ОС Анализ существующих реализаций ОС EE90 в 90 в качестве систем реального маштаба качестве систем реального маштаба времени.времени.Разработка компонентов жесткого режима Разработка компонентов жесткого режима РМВ ОС РМВ ОС EE90 на основе произведенного 90 на основе произведенного анализа для достижения заданных анализа для достижения заданных характеристик.характеристик.Анализ характеристик полученной системы. Анализ характеристик полученной системы.

Page 5: Денис Федотов ,  2 1 8 группа

Методы и средства анализа Методы и средства анализа временных характеристиквременных характеристик

Специализированная ячейка mtst.Специализированная ячейка mtst.Набор тестовых программ.Набор тестовых программ.Трассировка ОС.Трассировка ОС.Процессорный Процессорный JTAGJTAG..Логический анализатор.Логический анализатор.

Page 6: Денис Федотов ,  2 1 8 группа

Ячейка Ячейка MTSTMTST

Генератор Генератор SBus SBus прерываний.прерываний.Счетчик времени с точностью до 40 Счетчик времени с точностью до 40 наносекунд.наносекунд.Позволяет полностью замерить все Позволяет полностью замерить все временные характеристики от момента временные характеристики от момента генерации прерывания до момента генерации прерывания до момента выхода на пользователя.выхода на пользователя.

Page 7: Денис Федотов ,  2 1 8 группа

Измерение времени реакции на Измерение времени реакции на прерываниепрерывание

Page 8: Денис Федотов ,  2 1 8 группа

Измерение времени Измерение времени переключения задачпереключения задач

Page 9: Денис Федотов ,  2 1 8 группа

Анализ существующих реализаций ОС E90 в качестве систем реального

времени

Время входа в процедуру Время входа в процедуру прерывания: прерывания: 245245 микросекунд. микросекунд.Время переключения процесса из Время переключения процесса из процедуры прерывания на другой процедуры прерывания на другой процесс: процесс: 37213721 микросекунд. микросекунд. Время передачи управления: Время передачи управления: 37563756 микросекунд. микросекунд. Время переключения процессов: Время переключения процессов: 367367 микросекунд. микросекунд.

Page 10: Денис Федотов ,  2 1 8 группа

ПроблемыПроблемыНеправильная, для ОС жесткого режима РМВ, работа Неправильная, для ОС жесткого режима РМВ, работа планировщика.планировщика.Нет возможности отключения процессоров от Нет возможности отключения процессоров от обработки прерываний.обработки прерываний.Нет возможности отключить миграцию процессов.Нет возможности отключить миграцию процессов.Нет возможности отключить на любом процессоре Нет возможности отключить на любом процессоре выполнение задач к нему не привязанных.выполнение задач к нему не привязанных.Нет возможности привязывать процессы к Нет возможности привязывать процессы к процессорам.процессорам.Нет возможности генерировать прерывания на Нет возможности генерировать прерывания на заданном процессоре.заданном процессоре.Нет выбора режимов обработки прерываний.Нет выбора режимов обработки прерываний.Длительная работа прерывания Длительная работа прерывания clock,clock, блокирующая блокирующая работу на ЦП.работу на ЦП.

Page 11: Денис Федотов ,  2 1 8 группа

Механизмы планирования Механизмы планирования Существуют очереди готовых к исполнению Существуют очереди готовых к исполнению РТ процессов для каждого процессора и РТ процессов для каждого процессора и одна общая очередь процессов для одна общая очередь процессов для исполнения на любом процессоре.исполнения на любом процессоре.Только система реального времени может Только система реального времени может привязать какой-то поток управления привязать какой-то поток управления (thread) к определенному процессу. (thread) к определенному процессу. Только ФПО имеет право перемещать Только ФПО имеет право перемещать привязанные потоки управления с одного привязанные потоки управления с одного процессора на другой.процессора на другой.Вся работа подчиняется правилам Вся работа подчиняется правилам абсолютных приоритетов.абсолютных приоритетов.

Page 12: Денис Федотов ,  2 1 8 группа

Отключения процессоров от Отключения процессоров от обработки прерыванийобработки прерываний

Строго необходимо. Так как это Строго необходимо. Так как это позволяет гарантировать время позволяет гарантировать время переключения, и непрерывность работы переключения, и непрерывность работы задачи ФПО.задачи ФПО.Все прерывания обрабатывает 1 или 2 Все прерывания обрабатывает 1 или 2 процессора.процессора.

Page 13: Денис Федотов ,  2 1 8 группа

миграция процессовмиграция процессов

Миграция процессов может внести Миграция процессов может внести дополнительную задержку.дополнительную задержку.Процессы ФПО должны быть Процессы ФПО должны быть привязаны к процессорам.привязаны к процессорам.

IdleUserFP

Page 14: Денис Федотов ,  2 1 8 группа

Отключение на процессоре выполнение Отключение на процессоре выполнение задач к нему не привязанныхзадач к нему не привязанных

Необходимо если существует поток или набор потоков задачи ФПО, для которых времена отклика наиболее критично.Позволяет ограничить круг задач исполняемых на данном процессоре.

Page 15: Денис Федотов ,  2 1 8 группа

Обслуживание двух уровневого Обслуживание двух уровневого прерывания в «Эльбрус – 90 микро»прерывания в «Эльбрус – 90 микро»

В операционную систему приходит заявка на обработку В операционную систему приходит заявка на обработку прерывания высокого уровня.прерывания высокого уровня.Это прерывание обрабатывается на любом процессоре, Это прерывание обрабатывается на любом процессоре, на котором разрешена обработка прерываний.на котором разрешена обработка прерываний.Обработчик прерывания высокого уровня генерирует Обработчик прерывания высокого уровня генерирует софтверное прерывание низкого уровня (1 или 4 уровня софтверное прерывание низкого уровня (1 или 4 уровня по по MBusMBus).).Обработчик нижнего уровня запускается на любом Обработчик нижнего уровня запускается на любом процессоре, на котором разрешена обработка процессоре, на котором разрешена обработка прерываний. И если он запустился не на том процессоре, прерываний. И если он запустился не на том процессоре, на котором ожидает ФПО, а так и будет в силу того, что на на котором ожидает ФПО, а так и будет в силу того, что на нем отключена обработка внешних прерываний, то он нем отключена обработка внешних прерываний, то он посылает внутреннее прерывание 14 уровня чтобы посылает внутреннее прерывание 14 уровня чтобы запустить планировщик.запустить планировщик.Планировщик запускает на исполнение задачу ФПО, если Планировщик запускает на исполнение задачу ФПО, если нет ничего более приоритетного.нет ничего более приоритетного.

Page 16: Денис Федотов ,  2 1 8 группа

Реализована другая схема Реализована другая схема В операционную систему приходит заявка на В операционную систему приходит заявка на обработку прерывания высокого уровня.обработку прерывания высокого уровня.Это прерывание обрабатывается на любом Это прерывание обрабатывается на любом процессоре, на котором разрешена обработка процессоре, на котором разрешена обработка прерываний.прерываний.Обработчик прерывания высокого уровня Обработчик прерывания высокого уровня генерирует софтверное прерывание низкого уровня генерирует софтверное прерывание низкого уровня (1,4,6,7,8 или 9 уровень по (1,4,6,7,8 или 9 уровень по MBusMBus).).Обработчик нижнего уровня запускается на Обработчик нижнего уровня запускается на процессоре, на котором ФПО ждет приход этого процессоре, на котором ФПО ждет приход этого прерывания.прерывания.Запускается планировщик, который ставит задачу Запускается планировщик, который ставит задачу ФПО на исполнение.ФПО на исполнение.

Page 17: Денис Федотов ,  2 1 8 группа

Классические этапы обработки Классические этапы обработки прерыванияпрерывания

Т1 – время прихода прерывания в процессор.Т1 – время прихода прерывания в процессор.Т2 – время входа в ОС. Т2 – время входа в ОС. Т3 – время входа в системный обработчик прерывания Т3 – время входа в системный обработчик прерывания (процедура драйвера) для исполнения TopHalf . (процедура драйвера) для исполнения TopHalf . Т4 – окончание TopHalf. Т4 – окончание TopHalf. T5 – Начало BottomHalf.T5 – Начало BottomHalf.Т6 – окончание BottomHalf и активизация процесса Т6 – окончание BottomHalf и активизация процесса ФПО (постановка процесса в очередь готовых к ФПО (постановка процесса в очередь готовых к исполнению процессов).исполнению процессов).Т7 – начало работы планировщика для переключения Т7 – начало работы планировщика для переключения процессора на процесс ФПО.процессора на процесс ФПО.Т8 – начало работы ФПО процесса для реакции на Т8 – начало работы ФПО процесса для реакции на прерывание. прерывание.

Page 18: Денис Федотов ,  2 1 8 группа

Причины возможных задержек Причины возможных задержек при входе в прерываниепри входе в прерывание

Т1-Т2 – задержка входа в ОС.Т1-Т2 – задержка входа в ОС.Т2-Т3 – Это время работы ядра ОС.Т2-Т3 – Это время работы ядра ОС.Т3-Т4 – время исполнения TopHalf. Т3-Т4 – время исполнения TopHalf. T4 – Т5 – задержка начала исполнения T4 – Т5 – задержка начала исполнения BottomHalf. BottomHalf. T5-Т6 – время работы BottomHalf. T5-Т6 – время работы BottomHalf. Т6-Т7 – время задержки до начала работы Т6-Т7 – время задержки до начала работы планировщика. планировщика. Т7-Т8. Время работы планировщика Т7-Т8. Время работы планировщика процессов. процессов.

Page 19: Денис Федотов ,  2 1 8 группа

Выбор режима обработки прерыванийВыбор режима обработки прерываний

1. Последовательная2. Оптимальная 3. Честная

Page 20: Денис Федотов ,  2 1 8 группа

Длительная работа прерывания Длительная работа прерывания clockclock

Прерывание высокого уровня. Работа clock до 400 микросекунд.

РешениеРазбить на 2 части. Первая часть обрабатывается на том процессоре на который она придет.Вторая часть:– Как отдельный thread с системным приоритетом.– Как прерывание низкого уровня, на отдельно

выделенном для этого процессоре, не обрабатывающем другие прерывания.

Page 21: Денис Федотов ,  2 1 8 группа

Доработка драйверов

Оптимизация работы драйверов.Доработка драйверов с учетом новых возможностей ядра.

Page 22: Денис Федотов ,  2 1 8 группа

Работа с памятьюРабота с памятью

выравнивать адреса по началу выравнивать адреса по началу страницы памяти.страницы памяти.регулировать размер структур таким регулировать размер структур таким образом, чтобы размер структуры был образом, чтобы размер структуры был кратен длине страницы (4096 Байт). кратен длине страницы (4096 Байт).

Page 23: Денис Федотов ,  2 1 8 группа

Новое ядроНовое ядро Старое ядроСтарое ядро

Время переключения процессов

Минимум 2525 4747

В среднем 2727 9595

Максимум 2828 367367

Экспериментальные Экспериментальные результатырезультаты

Page 24: Денис Федотов ,  2 1 8 группа

Новое ядроНовое ядро Старое ядроСтарое ядро

Время входа в процедуру прерыванияВремя входа в процедуру прерыванияВ среднем 1111 2323

Максимум 1717 245245

Время в прерывании

В среднем 1818 3838

Максимум 3232 345345

Время от прерывания до pollВ среднем 3737 6666

Максимум 5757 37213721

Время от poll до пользователяВ среднем 1010 3030

Максимум 1212 4545

Page 25: Денис Федотов ,  2 1 8 группа

Новое ядроНовое ядро Старое ядроСтарое ядро

Итоговое время время переключения процесса из процедуры прерывания на другой время переключения процесса из процедуры прерывания на другой

процесспроцесс

В среднем 4848 9595

Максимум 6262 37563756

Page 26: Денис Федотов ,  2 1 8 группа

РезультатыРезультаты

Реализовано и внедрено в Реализовано и внедрено в программное обеспечение ВК программное обеспечение ВК «Эльбрус-90микро» новое ядро «Эльбрус-90микро» новое ядро удовлетворяющее требованиям удовлетворяющее требованиям поставленной задачи и поставленной задачи и обеспечивающее эффективное время обеспечивающее эффективное время переключения процессов и обработки переключения процессов и обработки прерываний.прерываний.

Page 27: Денис Федотов ,  2 1 8 группа

Q&AQ&A