Введение 5
1 Обзор методов планирования 10
1.1 Временные характеристики существующих систем реального времени 10
1.1.1 Время реакции системы (латентность) 10
1.1.2 Время переключения контекста 10
1.1.3 Дедлайн 11
1.1.4 Джиттер 11
1.2 Существующие алгоритмы приоритетного планирования 11
1.2.1 Алгоритмы, основанные на приоритетах (классификация по принципу
выбора процесса на выполнение из очереди) 11
1.2.2 Смешанные алгоритмы планирования (квантование с приоритетами) 13
1.3 Алгоритмы, основанные на приоритетных очередях задач 14
1.3.1 Разделение времени 15
1.4 Анализ схем аппаратного приоритетного выбора готовых к выполнению задач 18
1.4.1 Схема приоритетного выбора «полное дерево» 20
1.4.2 Схема последовательного приоритетного выбора 21
1.4.3 Схема гибридного приоритетного выбора 22
1.5 Выводы 24
2 Моделирование алгоритмов приоритетного планирования на языке
недетерминированных автоматов 25
2.1 Возможности языка НДА для формального описания алгоритмов
управления параллельными процессами и ресурсами 25
2.2 Формализация алгоритмов управления параллельными процессами на
основе использования механизма «рандеву» 32
2.3 Формализация алгоритмов управления параллельными процессами с использованием механизма монитора и согласующего кольцевого буфера ... 37
2.4 Выводы 44
3 Аппаратная реализация алгоритмов приоритетного планирования 46
3.1 Проблемы управления ресурсами и процессами в многопроцессорных
системах 46
3.2 Структура аппаратного планировщика с глобальной очередью 56
3.3 Моделирование аппаратного планировщика с глобальной очередью на
языке VHDL 59
3.4 Структура аппаратного планировщика с локальными очередями 72
3.5 Моделирование аппаратного планировщика с локальными очередями на
языке VHDL 74
3.6 Получение временных диаграмм и временных характеристик 84
3.7 Выработка критериев сравнительной оценки планировщиков 92
3.8 Выводы 96
Заключение 97
Список используемых источников 99
Приложение А Модуль блока генерации задач 101
Приложение B Модуль блока управления очередью планировщика с глобальной очередью 104
Приложение C Модуль блока приоритетной очереди планировщика с глобальной очередью 107
Приложение D Модуль блока синхронизации и назначения задач планировщика с глобальной очередью 121
Приложение E Модуль блока выбора процессора планировщика с глобальной очередью 128
Приложение F Модуль блока процессора 131
Приложение G Модуль блока назначения задач планировщика с локальными очередями 134
Приложение H Модуль блока локального диспетчера с приоритетной очередью планировщика с локальными очередями 137
Приложение I Модуль выбора очереди планировщика с локальными очередями
151
Приложение J Презентация 153
При разработке и совершенствовании вычислительных систем (ВС) необходимо проводить исследования ее характеристик. Для изучения характеристик ВС применяют программные модели, не являющиеся физическим устройством, а описанные данными и алгоритмами в памяти ЭВМ. Следовательно, их построение и изменение производится без финансовых затрат.
Проблема эффективной диспетчеризации пакетов задач является одним из наиболее важных аспектов эффективного использования вычислительных ресурсов при распараллеливании вычислительного процесса на уровне задач. Использование оптимальных или, по крайней мере, приближенных расписаний для реализации крупных пакетов задач на многопроцессорных и многомашинных ВС позволяет сократить время исполнения таких пакетов и уменьшить при этом затраты машинного времени.
Таким образом, разработка и исследование различных методов, моделей и алгоритмов, позволяющих строить эффективные расписания для различных типов пакетов задач и структур параллельных ВС приобретает особую актуальность.
В данной работе предлагается метод выбора приоритетного планировщика задач для встроенных многоядерных систем реального времени, основанный на имитационных моделях массового обслуживания, который позволяет оценивать как характеристики производительности планировщиков задач, так и их функционирование.
Задача планирования процессов в многопроцессорной системе, в отличие от однопроцессорной, является двумерной. В период работы функции назначения задачи осуществляется функция выделения целевого процессора, вследствие чего возникают дополнительные издержки времени. Помимо этого, в планировщике задач с разделением во времени формируется процесс перезагрузки кэш-памяти, который взаимосвязан с переключением задач, когда прерванная задача с достаточно высокой вероятностью способна быть направлена для продолжения обслуживания в иной процессорный узел. Данный процесс повышает частоту кэш-промахов, и в абсолютно любом случае отрицательно воздействует на производительность многопроцессорной системы. Другое противоречие в диспетчерах задач с разделением в пространстве, которое требуется разрешить, взаимосвязано с тем, что автоматическое поддержание различного уровня нагрузки процессорных узлов невозможно. Решение представленной задачи лежит в плоскости принудительного обеспечения баланса методами планировщика/диспетчера, что в любом случае порождает дополнительные временные расходы на исполнение определенной программы балансирования. Представленные выше факторы неизбежно формируют рост трудности программной реализации ядра операционных систем, приводят к уменьшению общей производительности многопроцессорной системы, а помимо этого уменьшают надежность и безопасность.
Во время обращения к критическим ресурсам операционной системы, а помимо этого и в процессе планирования и диспетчеризации задач к данным ресурсам возникают очереди процессов, которые ожидают выполнения иных процессов. По этой причине для оценки вероятностно-временных характеристик многопроцессорных систем применяют методы теории массового обслуживания.
Большая часть задач проектирования многопроцессорных вычислительных систем связаны с распределением ресурсов среди конкурирующих требований, притом, что моменты возникновения данных требований носят случайный характер. Это обстоятельство приводит к невозможности предсказать времена выполнения задач в многопроцессорных системах, что особенно важно для систем реального времени. Решением данных проблем выступает аналитическое, имитационное и функционально¬логическое моделирование, дающее возможность ускорить процесс проектирования, в частности, аппаратных планировщиков задач в составе ядра специализированных многопроцессорных операционных систем, а также уменьшить себестоимость проекта. Представленные аспекты обуславливают актуальность выбранной темы исследования.
Объект исследования - алгоритмы планирования и диспетчеризации задач в многопроцессорных вычислительных системах.
Предмет исследования - математическое и функционально-логическое моделирование планировщиков/диспетчеров задач в составе ядра многопроцессорных операционных систем с использованием языка недетерминированных автоматов (НДА), систем массового обслуживания и языка моделирования аппаратуры VHDL.
Цель данной работы - получение временных характеристик и сравнительная оценка планировщиков/диспетчеров задач с аппаратной реализацией.
С целью достижения поставленной цели в диссертационной работе решаются следующие задачи:
1) разработка автоматной модели на основе языка НДА и на её основе VHDL-модели приоритетного планировщика/диспетчера задач и оценка характеристик аппаратной реализации;
2) разработка имитационной модели приоритетного планировщика/диспетчера задач для получения его вероятностно-временных характеристик;
3) разработка функционально - логической модели планировщика/диспетчера задач для оценки возможности реализации аппаратными средствами;
4) проведение вычислительных экспериментов с использованием разработанных моделей.
Методы исследований. Для того чтобы решить поставленные задачи в диссертационной работе применены методы:
- теории недетерминированных автоматов.
- теории аналитического и имитационного моделирования;
- теории вероятностей;
Научная новизна работы состоит в следующем:
1) разработаны на основе языка НДА автоматные модели приоритетных планировщиков/диспетчеров задач с разделением времени с локальными и глобальными очередями в составе многопроцессорной системы.
2) созданы на основе НДА модели VHDL - программы аппаратной реализации планировщиков/диспетчеров задач с разделением времени с локальными и глобальными очередями в составе многопроцессорной системы и произведена оценка характеристик этих моделей;
3) разработан программный модуль сбора статистики в составе VHDL - программы для оценки вероятностно-временных характеристик подсистемы «диспетчер задач - процессорный узел».
Практическая значимость работы.
Применение предложенных аналитической и программной моделей обеспечивает сравнительную оценку временных характеристик планировщика/диспетчера задач на этапе эскизного проектирования, без проведения дорогостоящих физических экспериментов.
Реализация и внедрение результатов работы. Методы моделирования диспетчеров задач многопроцессорных систем будут применены в учебном процессе кафедры «Вычислительная техника» Пензенского государственного университета при осуществлении основной образовательной программы по дисциплинам «Вычислительные системы» для магистрантов, которые обучаются по направлению «Информатика и вычислительная техника».
Достоверность результатов работы подтверждается имитационным моделированием, применением известных методов математического моделирования, а помимо этого докладами на научных конференциях и публикацией в научных журналах.
На защиту выносятся.
1. Алгоритмы приоритетного планирования и диспетчеризации с глобальной и локальной очередями задач в составе многопроцессорных операционных систем.
2. Программный комплекс, включающий в себя VHDL-программу функционально-логического моделирования для оценки функционирования, а также программу имитационного моделирования и определения вероятностно-временных характеристик многопроцессорных приоритетных планировщиков задач.
3. Результаты комплексных исследований вероятностно-временных характеристик планировщиков задач с использованием разработанных математических методов и комплекса программ.
Итогом проведенной работы являются следующие результаты: исследован материал, касающийся методов планирования планировщиков многопроцессорных систем, а именно:
• изучены основные характеристики операционных систем реального времени, такие как латентность, время переключения контекста, дедлайн, джиттер;
• рассмотрены существующие алгоритмы приоритетного планирования;
• изучены алгоритмы, основанные на приоритетных очередях задач;
Исследован вопрос моделирования алгоритмов приоритетного планирования на языке недетерминированных автоматов. Отдельно изучена проблема формализации алгоритмов управления параллельными процессами на основе использования механизма «рандеву», рассмотрена концептуальная модель «задачи о спящем парикмахере». Рассмотрены алгоритмы управления параллельными процессами в задаче «читатели-писатели», с использованием механизма монитора и согласующего кольцевого буфера. В итоге, на основе изученного материала, предложены реализации планировщиков задач с глобальной и локальными приоритетными очередями.
Дополнительно, выполнен анализ промоделированных планировщиков, выявлены их достоинства и недостатки, получены их основные временные характеристики, такие как латентность, среднее время отклика планировщика (ожидания заявки в очереди), среднее время ответа системы (дедлайн), а также определен джиттер задач в каждом из планировщиков. На его основе был сделан вывод о большей эффективности планировщика с глобальной очередью задач перед планировщиком с локальными очередями.
Общий вывод заключается в том, что в многопроцессорных системах жесткого реального времени следует применять преимущественно планировщики с глобальной очередью, т.к. по сравнению с планировщиками с локальными очередями при примерно равном дедлайне в системах с глобальной очередью джиттер задач намного меньше. В системах мягкого реального времени можно применять любой из них, так как по показателю времени ответа они показывают примерно одинаковые результаты.
Полученные результаты обладают практической и научной ценностью. Они могут быть применены при проектировании и разработке современных планировщиков задач многопроцессорных операционных систем. Дальнейшее развитие данной работы может заключаться в модификации данных планировщиков задач для систем реального времени и моделировании их на системах на кристалле фирмы Xilinx серии Zynq 7000.
1. Таненбаум Э. Бос Х. Современные операционные системы. 4-е изд. — СПб.: Питер, 2015. — 1120 с.
2. Таненбаум Э. Многоуровневая организация ЭВМ. - М.: Мир, 1979. - 547 с.
3. Вашкевич Н.П. Недетерминированные автоматы и их использование для реализации систем параллельной обработки информации / Н.П.Вашкевич, Р.А. Бикташев. - Пенза: Изд-во ПГУ, 2016. - 394с.
4. Вашкевич Н.П. Недетерминированные автоматы в проектировании систем параллельной обработки [текст]/ Н.П.Вашкевич: учеб. Пособие.
- Пенза: изд-во Пенз.гос.ун-та, 2004. - 280 с.
5. Вашкевич Н.П. Аппаратная реализация функций синхронизации параллельных процессов при обращении к разделяемому ресурсу на основе ПЛИС [текст] / Н.П.Вашкевич, Р.А.Бикташев, Е.И.Гурин // Известия вузов. Поволжский регион. Технические науки. № 2, 2007, с.3-12.
6. Алиев Т.И. Основы моделирования дискретных систем. - СПб: СПбГУ ИТМО, 2009. - 363 с.
7. Бикташев Р. А., Королев Б.Д. Сравнительный анализ
производительности средств управления задачами методом
моделирования. // Сборник научных статей Всероссийской
межвузовской научно-практической конференции. Под редакцией Л.Р. Фионовой. 2019 с.
8. Кларк Э.М. Верификация моделей программы: Model Checking [текст]. Перевод с англ./ Э.М.Кларк, О.Грамберг, Д.Пелед. - М.: МЦНМО, 2002.
- 416 с.
9. Зотов, В. Ю. Проектирование цифровых устройств на основе ПЛИС фирмы Xilinx в САПРWebPACK ISE / В. Ю. Зотов. - М.: Горячая линия- Телеком, 2003. - 624 с.
10. Пранявичус Г.И. Модели и методы исследования вычислительных систем. - Вильнюс: Мокслас, 1982. - 227 с.
11. T. P. Baker, “A comparison of global and partitioned EDF schedulability tests for multiprocessors,” Florida State University, Tech. Rep. TR-051101, 2005.
12. K. Chakma / A Hierarchical Scheduling Approach for Symmetric Multiprocessing Based Real Time Systems on VxWorks / K. Chakma, S. Debbarma, N. Kar, N. Debbarma, and T. Debbarma // Lecture Notes on Software Engineering. - February 2013.-Vol. 1, No. 1, pp. 61-65.
13.Spartan-3E FPGA Starter Kit Board User Guide [Электронный ресурс]. - Режим доступа:
https: //www.xilinx.com/support/documentation/boards_and_kits/ug-
230.pdf