Работа в реальном времени возможна только при первом алгоритме

Re: Новая версия ПО 2.4

Делаю все и плавно и резко. до обновления все проходило без проблем. теперь не проходит. жму на нижнюю кнопку с автомобильчиком . выходит окно что анализ проходит при первом алгоритме . потом убрав окно жму на верхнюю где написано анализ тест проходит но ничего не понятно.

резван
 
Сообщения: 174
Зарегистрирован: 25 фев 2018, 05:12
Откуда: рсо алания моздок

Re: Новая версия ПО 2.4

Сообщение tetranik » 11 ноя 2021, 07:00

Жми шестую кнопочку слева сверху в окошке эффективности, чтобы выбрать первый алгоритм. По умолчанию анализ по второму алгоритму идет. Кнопочка Alg1/2.

tetranik
 
Сообщения: 27
Зарегистрирован: 16 окт 2021, 22:06
Откуда: Волгоградская обл. г.Михайловка

Re: Новая версия ПО 2.4

Сообщение резван » 13 ноя 2021, 04:01

В самописце запускаю — Эфективность работы цилиндров после запуска двигателя. Как только запись начинается жму окно эфективность работы цилиндров. кнопка выбор алгоритма расчета уже нажата. с права в низу две кнопки . нижнии с автомобильчиком жму. выходит вот это -РАБОТА В РЕАЛЬНОМ ВРЕМЕНИ ВОЗМОЖНО ТОЛЬКО ПРИ ПЕРВОМ АЛГОРИТМЕ. жму на ОК в этом окошке . окошко пропадает потом жму на верхнюю кнопку анализ . открывается окно с отсчетом где написано поднять обороты для колибровки диска. вот тут я плавно поднимаю обороты двигателя и резко бросаю но ничего не происходит. а ранше начинался тест в реальном времени.

резван
 
Сообщения: 174
Зарегистрирован: 25 фев 2018, 05:12
Откуда: рсо алания моздок

Re: Новая версия ПО 2.4

Сообщение Дормидонт » 13 ноя 2021, 17:00

Тоже заметил, что тест в реальном времени часто не проходит, хотя педаль газа после прогазовки опускаешь резко, по тахометру обороты падают не медленно, табличка с информацией о калибровке так и висит. После записи нажимаешь на анализ, программа пишет о необнаружении падения оборотов, нажимаешь кнопочку с началом анализа от первого маркера, ставишь маркер на первую длинную искру и анализ идёт. Но в реальном времени анализ не проходит.

Дормидонт
 
Сообщения: 117
Зарегистрирован: 22 янв 2020, 06:23
Откуда: Тамбовская губерния.

Re: Новая версия ПО 2.4

Сообщение admin » 13 ноя 2021, 18:55

Пришлите мне записанный файлик где такой эффект был

admin
Администратор
 
Сообщения: 1393
Зарегистрирован: 12 авг 2010, 16:31

Re: Новая версия ПО 2.4

Сообщение резван » 14 ноя 2021, 01:50

завтра на работе сниму.Вы бы мне написали как проводить анализ в реале , по новому , если Вас не затруднит.

резван
 
Сообщения: 174
Зарегистрирован: 25 фев 2018, 05:12
Откуда: рсо алания моздок

Re: Новая версия ПО 2.4

Сообщение Дормидонт » 14 ноя 2021, 04:02

Вот ссылка на файл. Сейчас попробовал сделать анализ от первого маркера, то проходит, то не проходит. Если задать первый цикл, анализ идёт.

https://dropmefiles.com.ua/ru/5QXCevVGz

Дормидонт
 
Сообщения: 117
Зарегистрирован: 22 янв 2020, 06:23
Откуда: Тамбовская губерния.

Re: Новая версия ПО 2.4

Сообщение yunik » 14 ноя 2021, 04:53

резван писал(а):В самописце запускаю — Эфективность работы цилиндров после запуска двигателя. Как только запись начинается жму окно эфективность работы цилиндров. кнопка выбор алгоритма расчета уже нажата. с права в низу две кнопки . нижнии с автомобильчиком жму. выходит вот это -РАБОТА В РЕАЛЬНОМ ВРЕМЕНИ ВОЗМОЖНО ТОЛЬКО ПРИ ПЕРВОМ АЛГОРИТМЕ. жму на ОК в этом окошке . окошко пропадает потом жму на верхнюю кнопку анализ . открывается окно с отсчетом где написано поднять обороты для колибровки диска. вот тут я плавно поднимаю обороты двигателя и резко бросаю но ничего не происходит. а ранше начинался тест в реальном времени.

Кнопка выбора алгоритма расчёта не должна быть нажата. Не нажатая кнопка означает что включён старый (первый) алгоритм расчёта.
У вас же был включён новый алгоритм и в сообщении программы вам указывалось на необходимость его сменить.

3.png
3.png (11.92 Кб) Просмотров: 2075

резван писал(а):завтра на работе сниму.Вы бы мне написали как проводить анализ в реале , по новому , если Вас не затруднит.

Смотрите в справке (помощь) в программе —

2.png
2.png (24.18 Кб) Просмотров: 2075
yunik
 
Сообщения: 710
Зарегистрирован: 08 фев 2017, 20:17
Откуда: СК

Re: Новая версия ПО 2.4

Сообщение резван » 15 ноя 2021, 17:13

Спасибо огромное! Простите что занял Ваше время. Надо было кнопочку отключить. Все как Вы говорили СПАСИБО!

резван
 
Сообщения: 174
Зарегистрирован: 25 фев 2018, 05:12
Откуда: рсо алания моздок

Re: Новая версия ПО 2.4

Сообщение резван » 15 ноя 2021, 17:38

вот скрин экрана.

Вложения
ЭРЦ в реале. Ауди 80 на январь 5.1.png
ЭРЦ в реале. Ауди 80 на январь 5.1.png (376.98 Кб) Просмотров: 1876
резван
 
Сообщения: 174
Зарегистрирован: 25 фев 2018, 05:12
Откуда: рсо алания моздок


Вернуться в Мотортестер DIAMAG 2

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Алгоритмы *

Все об алгоритмах

Сначала показывать

Порог рейтинга

Анализ STL моделей с использованием Python

Уровень сложности
Средний

Время на прочтение
30 мин

Количество просмотров 845

В программных продуктах для работы с STL, таких как Geomatix Design X, Wrap, NX и др., функционал обязательно включает сегментацию STL модели на отдельные грани. В свободно распространяемом ПО, однако, инструменты для сегментации зачастую отсутствуют. В данной статье хочу рассказать о реализованном мной на Python алгоритме разбиения STL на отдельные грани.

Читать далее

Самая маленькая хеш-таблица в мире

Уровень сложности
Сложный

Время на прочтение
17 мин

Количество просмотров 6.7K

1 декабря я в очередной раз поучаствовал в Advent of Code, написав программу на Rust. Если интересно — код можно найти на GitHub. Тут мне хотелось бы рассказать о моём решении задачи, предлагавшейся во 2 день мероприятия, так как это решение, с одной стороны, сверх всякой меры оптимизировано, а с другой — демонстрирует кое-какие полезные приёмы. Чтобы не усложнять себе жизнь — мы рассмотрим лишь первую часть задачи, но те же приёмы можно применить и к её второй части.

Читать далее

Быстрый поиск изоморфных подграфов

Уровень сложности
Средний

Время на прочтение
16 мин

Количество просмотров 1.8K

Привет, Хабр!

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

Сначала будет приведён алгоритм поиска паттернов рекуррентным перебором, потом его быстрая модификация с минимальным отсечением.

Примеры кода написаны на C++, исходники всей библиотеки лежат здесь. Также написана копия библиотеки на Java, исходники лежат здесь.

Читать далее

Модель обнаружения смс-спама: создаем и тестируем

Уровень сложности
Средний

Время на прочтение
7 мин

Количество просмотров 802

Привет Хабр! В прошлой статье мы векторизировали данные, теперь нам осталось написать модель и протестировать её

Мы построим модель для обнаружения спам-сообщений с использованием алгоритма случайного леса. Случайный лес — это очень мощный алгоритм, который очень широко используется. Мы не будем углубляться в математику алгоритма случайного леса, а воспользуемся его реализацией в библиотеке Scikit-Learn.

Читать далее

Пятничные клеточные автоматы: 10 правил «больших, чем жизнь»

Уровень сложности
Простой

Время на прочтение
4 мин

Количество просмотров 2.8K

Неделю назад мы сделали шаг в сторону нетоталистичных конфигураций клеточных автоматов, где считали не только количество, но и расположение живых соседей. Сегодня шагнём в другую сторону – увеличим радиус поиска соседей.

Самое популярное подобное расширение конфигурации известно как Larger than Life, или просто LtL. Его мы и рассмотрим.

👾

Подробно рассматриваем обратное распространение ошибки для простой нейронной сети. Численный пример

Уровень сложности
Средний

Время на прочтение
6 мин

Количество просмотров 2.9K

В данной статье мы рассмотрим прямое распространение сигнала и обратное распространение ошибки в полносвязной нейронной сети. В результате получим весь набор формул, необходимых для её программной реализации. В завершении статьи приведён численный пример.

Надеемся, что статья будет интересной и полезной для всех, кто приступает к изучению глубинного обучения и нейронных сетей!

Проверка корневых структур на изоморфизм

Уровень сложности
Средний

Время на прочтение
3 мин

Количество просмотров 1.4K

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

Читать далее

Генерация 2D мира с помощью клеточного автомата на Python

Уровень сложности
Простой

Время на прочтение
8 мин

Количество просмотров 3.8K

Всем привет! На написание этой статьи меня вдохновил автор YouTube канала PeaAshMeter. В своем видео автор показывает простейший генератор 2D мира, который основан на простейшем правиле клеточного автомата. Что такое клеточный автомат? Какие клеточные автоматы бывают? На эти и многие другие вопросы я попробую ответить.

Читать далее

Генерируем рецепты блюд на JS и цепях Маркова

Уровень сложности
Простой

Время на прочтение
5 мин

Количество просмотров 1.9K

Когда-то меня очень радовал один паблик в соцсети ВК. По заявлениям администрации нейросеть генерировала рецепты, которые и составляли 99% контента. Вероятно, действительно это была простенькая нейросеть вроде RNN или LSTM. К сожалению, последний пост в паблике датирован 2019 годом, а моя тяга к изысканным блюдам не угасла, поэтому было решено сделать генератор рецептов на JS и цепях Маркова. Почему не повторить эксперимент с более продвинутой доступной нейросетью вроде GPT-2? Потому что для ее обучения требуется достаточно много времени, ресурсов и данных.

Читать дальше →

Пишем игру от первого лица в 2КБ на Rust

Уровень сложности
Средний

Время на прочтение
21 мин

Количество просмотров 9.4K

Введение

Поначалу кажется, что создать игру от первого лица без движка или графического API практические невозможно. В этом посте я расскажу, как это сделать при помощи алгоритма под названием ray casting.

Моя цель — показать, что сложную задачу можно разбить на более простые части, и если я всё сделаю правильно, то у вас появится ощущение, что вы сами открыли, как работает игра.

Для начала разберёмся, как работает алгоритм, а затем построчно напишем его. Затем мы пересмотрим код, добавим несколько возможностей и оптимизируем его размер. Я постарался сделать пост максимально доступным и дружелюбным, но вам поможет приличное знание программирования, Rust и основ геометрии.

Читать дальше →

Пятничные клеточные автоматы: 10 удивительных правил с нотацией Хенселя

Уровень сложности
Простой

Время на прочтение
7 мин

Количество просмотров 4.8K

GAN: убийство двух зайцев одним выстрелом для синтеза табличных данных

Уровень сложности
Простой

Время на прочтение
22 мин

Количество просмотров 859

Аннотация

Синтез табличных данных получил широкое внимание в литературе. Это связано с тем, что доступные данные часто ограничены, неполны или не могут быть легко получены, а конфиденциальность данных становится все более актуальной. В этой работе мы представляем обобщенную структуру генеративной состязательной сети (GAN) для табличного синтеза, которая сочетает в себе состязательное обучение и регуляризацию при отрицательной логарифмической плотности обратимых нейронных сетей. Предлагаемая структура может быть использована для достижения двух различных целей. Во-первых, мы можем далее улучшить качество синтеза, уменьшив отрицательную логарифмическую плотность реальных записей в процессе состязательного обучения. С другой стороны, увеличивая отрицательную логарифмическую плотность реальных записей, можно синтезировать реалистичные поддельные записи таким образом, чтобы они не были слишком близки к реальным записям и снижали вероятность потенциальной утечки информации. Мы провели эксперименты с реальными наборами данных для классификации, регрессии и атак на конфиденциальность. В целом, предлагаемый метод демонстрирует наилучшее качество синтеза (с точки зрения оценочных показателей, ориентированных, например, на задачи F1) при уменьшении отрицательной логарифмической плотности во время состязательного обучения. При увеличении отрицательной плотности журнала результаты наших экспериментов показывают, что расстояние между реальными и поддельными записями увеличивается, повышая устойчивость к атакам на конфиденциальность.

Читать далее

Разбираем лучшие решения задач с VK Cup

Уровень сложности
Сложный

Время на прочтение
4 мин

Количество просмотров 2.2K

В начале февраля мы наградили победителей нашего IT‑чемпионата VK Cup. До финала дошли 80 человек, а общий призовой фонд в 4 млн рублей разделили 20 победителей — по четыре команды на каждый трек чемпионата. На Хабре мы решили сделать серию статей с разбором наиболее интересных решений по разным трекам.

Сегодня мы расскажем про трек по машинному обучению. Участники работали над улучшением рекомендаций для друзей и предсказанием взаимного добавления в друзья между пользователями ВКонтакте. Все мы пользуемся соцсетями и можем на собственном примере ощутить, как работают рекомендации друзей. Но что под капотом этого решения, откуда соцсеть знает, с кем мне стоит подружиться?

Во всём этом разобрался Иван Брагин, один из победителей чемпионата.

Читать далее

Понимаем обычное дерево отрезков

Уровень сложности
Средний

Время на прочтение
13 мин

Количество просмотров 5.8K

Всем привет! Изучив несколько статей по этой теме, у меня остались вопросы, и некоторые моменты по-прежнему были не понятны, поэтому я решил написать свою, которая, как мне кажется, была бы понятна тем, кто не силен в спортивном программировании. В ней я объясняю, как устроено дерево отрезков. Примеры с кодом будут приведены на языке C++, однако на объяснение это не влияет.

Читать далее

Smart Tomo Engine 2.0. Выход на новый уровень

Уровень сложности
Средний

Время на прочтение
7 мин

Количество просмотров 1.7K

В сегодняшней статье речь пойдет о Smart Tomo Engine 2.0  – новой версии нашего продукта реконструкции трехмерных объектов из набора их томографических проекций (рентгенограмм). По сравнению с предыдущей версией у новой выше качество получаемых изображений, существенно повышено быстродействие, улучшена технологическая совместимость с программами анализа трехмерных данных и с различными видами томографов. Заходите под кат, чтобы увидеть работу новой версии STE на примере реконструкции цветов (в честь Международного женского дня).

Читать далее

Неожиданная эффективность условных вероятностей

Время на прочтение
11 мин

Количество просмотров 5.8K

В последнее время я решил заняться задачами по теории вероятностей, потому что мне кажется, получение знаний в этой сфере принесёт большую пользу. Я нашёл ключ, часто использующийся для решения многих из них: накладываем условие на промежуточное состояние, а затем отдельно вычисляем значение этого промежуточного состояния. Это превращает очень сложные задачи в такие, где решение практически очевидно. [Однако в таком случае мы иногда обмениваем эффективность на простоту.]

Такой подход был полезен для решения задачи о днях рождения в очереди, и в статье я приведу ещё три примера, в которых это проявляется. Если задача покажется вам неинтересной, перейдите к следующей, они все разные.

Читать дальше →

В этой одежде системы распознавания будут считать вас животным

Время на прочтение
4 мин

Количество просмотров 42K

У Рэйчел Дидеро интересный набор навыков: несколько степеней в области дизайна одежды (полученные в школах трех разных стран) и докторская степень в области машинного обучения Миланского политехнического университета.

Эти знания позволили ей выпустить коллекцию — довольно уродливой — одежды Manifesto. Она страшная и безвкусная, зато в ней вы становитесь нераспознаваемые для ML-алгоритма детектирования Yolo, активно используемого для работы с уличными камерами.

Поскольку, в виде одного из хобби, я занимаюсь проблемами распознавания объектов, мне было интересно не только описать сам подход к алгоритму и его возможному обману, так и то, что наше будущее, очевидно, будет не таким, как мы представляем. И это интересно исследовать.

Читать дальше →

Как выиграть ВСОШ по информатике и больше не волноваться о ЕГЭ?

Уровень сложности
Простой

Время на прочтение
7 мин

Количество просмотров 2.9K

Привет, меня зовут Сергей Вольнов и я сейчас учусь на первом курсе в НИУ ВШЭ на программе прикладной математики и информатики. Если поступать туда по ЕГЭ, то проходной в этом году был 304 балла по трем предметам, но выиграв олимпиады туда можно без вступительных испытаний.

В 10 и 11 классе я стал призером заключительного этапа Всероссийской Олимпиады Школьников по Информатике (ВСОШ) и даже стал медалистом на международной Жаутыковской олимпиаде по Computer Science. Призерство ВСОШ дало мне возможность поступить в любой ВУЗ на информатическое направление по БВИ и я выбрал ВШЭ.

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

Читать далее

О вреде GOTO-фобии (с примерами на C)

Время на прочтение
17 мин

Количество просмотров 25K

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

Читать далее

Необходимые термины объяснения

Крайний срок начала: задача должна начаться раньше определенного времени

Классификация алгоритмов планирования в реальном времени

Классификация на основе свойств задачи в реальном времени
  • Жесткий алгоритм планирования в реальном времени: задача должна быть выполнена в течение определенного времени
  • Мягкий алгоритм планирования в реальном времени: то есть большинство задач должно быть выполнено в течение определенного времени
Классификация по расписанию
Определение упреждающего и не упреждающего здесь не объясняется.
  • Невытесняющее
  • упреждающий

Самый ранний срок первый алгоритм

EDF(Earliest DeadLine First)
 Смысл этого алгоритма состоит в том, что тот, кто завершает задачу, имеет ранний срок, тот, кто выполняет его первым. Это как когда мы в очереди, чтобы купить билет
 Когда это происходит, люди часто говорят, извините, я спешу отпустить меня первым.

Применение EDF в не упреждающем планировании

Поясним на примере (t это ось времени)

  1. Первая задача 1 прибывает первой и выполняет задачу
  2. Во время выполнения задачи 1 задачи 2, 3 поступают. То есть, когда задача 1 завершена, есть задачи 2 и 3, ожидающие выполнения.
  3. Сравните сроки выполнения задач 2, 3, которые являются главнымиНачальный срокДоступно, задача 3 выполняется первой
  4. Таким же образом, мы можем сделать вывод, что задача 4 выполняется перед задачей 2.
  5. Таким образом, порядок выполнения составляет 1, 3, 4, 2

Применение EDF в упреждающем планировании

Давайте объясним на примере

Прежде всего, вторая и третья строки на рисунке должны показать, что обычно используемое планирование приоритетов не может быть применено к системе реального времени. Не вдаваясь в подробности, вы можете оставить это в покое. Давайте непосредственно рассмотрим первую и последнюю строки.

  1. При t = 0 A1 и B1 прибывают одновременно. В это время, сравнивая крайние сроки (крайние сроки) двух, можно видеть, что крайний срок А1 является ранним, поэтому А1 запускается первым.

  2. После того, как A1 выполняется в течение 10 мс, потому что A2 еще не прибыл, поэтому нет никакого сравнения, и он непосредственно переключает выполнение B1.

  3. После того, как B1 выполняется в течение 10 мс, приходит A2 и сравнивает время отключения двух из них. A2 предшествует B1. Таким образом, A2 выгружает процессор, а B1 прерывает.

  4. Последующий способ планирования может быть завершен в соответствии с анализом выше.

    Разница между вытесняющим и не вытесняющим EDF заключается в том, что вытесняющий - это когда приходит новая задача A
     Когда крайний срок A раньше, чем крайний срок выполнения задачи B, он будет прерван 
     B, захватите управление процессором и вместо этого запустите A.
    

Наименьший релаксационный первый алгоритм

LLF(Least Laxity First)
Идея этого алгоритма заключается в том, чтобы судить по срочности задачи. Чем актуальнее задача, тем меньше провал и выше приоритет

Slack = время, необходимое для завершения сам время выполнения текущее время

Позвольте мне привести вам пример. Например, в это время ось времени равна 0 мс, и задачи A и B. прибывают одновременно. Вам необходимо определить, какую задачу выполнить первой.

Задача A должна быть выполнена за 200 мс (или раньше), а сама A выполняется за 100 мс. Таким образом, провал А составляет 200-100-0 = 100 мс.

В настоящее время существует еще одно задание B, которое должно быть выполнено за 400 мс (или раньше). Оно должно быть выполнено в течение 150 мс, поэтому провисание составляет 400-150-0 = 250

Следовательно, вялость (более неотложная задача) выполняется в первую очередь.

Тест дается ниже, если вы овладеете вышеупомянутыми идеями, вы можете легко завершить его.

Если в системе реального времени есть две периодические задачи A и B реального времени, задача A выполняется каждые 20 мс и 10 мс одновременно.

Задача B выполняется каждые 50 мс и 25 мс.

Наблюдая за рисунком ниже, нарисуйте график временной шкалы графиков A и B в соответствии с алгоритмом LLF.

Ответ дан ниже

Готово!

Лекция 6.

Планирование периодических процессов. Статический алгоритм планирования RMS.

Динамический алгоритм планирования EDF.

Внешние события, на которые система реального времени должна реагировать, можно разделить на периодические (возникающие через регулярные промежутки времени) и непериодические (возникающие непредсказуемо). Возможно наличие нескольких потоков событий, которые система должна обрабатывать. В зависимости от времени, затрачиваемого на обработку каждого из событий, может оказаться, что система не в состоянии своевременно обработать все события. Если в систему поступает m периодических событий, событие с номером i поступает с периодом Pi и на его обработку уходит Ci секунд работы процессора, все потоки могут быть своевременно обработаны только при выполнении условия

åm Ci 1 i= 1 Pi

Система реального времени, удовлетворяющая этому условию, называется поддающейся планированию или планируемой. Соотношение CiPi является просто частью процессорного

времени, используемого процессом i, а сама сумма – это коэффициент использования (или коэффициент загруженности) процессора, который, естественно, не может быть больше 1.

В качестве примера рассмотрим систему с тремя периодическими сигналами с периодами 100, 200, 500 мс соответственно. Если на обработку этих сигналов уходит 50, 30, 100 мс, система является поддающейся планированию, поскольку 0,5+0,15+0,2<1. Даже при добавлении четвертого сигнала с периодом в 1 с системой все равно можно будет управлять при помощи планирования, пока время обработки сигнала не будет превышать 150 мс. Эти расчеты не являются абсолютно верными, так как не учитывают время переключения контекста и не учитывает возникновение непериодических событий.

Алгоритмы планирования заданий могут быть разделены на статические и динамические. Статические алгоритмы определяют приемлемый план выполнения заданий по их априорным характеристикам, динамический алгоритм модифицирует план во время исполнения заданий. Издержки на статическое планирование низки, но оно крайне нечувствительно и требует полной предсказуемости той системы реального времени, на которой оно установлено. Динамическое планирование связано с большими издержками, но способно адаптироваться к меняющемуся окружению.

Алгоритмы планирования будем рассматривать на примере 3 периодических процессов A, B, C. Предположим, что процесс A запускается с периодом 30 мс и временем обработки 10 мс. Процесс B имеет период 40 мс и время обработки 15 мс. Процесс C запускается каждые 50 мс и обрабатывается за 5 мс. Суммарно эти процессы потребляют 0,808 процессорного времени, что меньше единицы. Соответственно, система в данном примере поддается планированию.

На рис. 1 представлена временная диаграмма работы процессов. Видно, что необходимо применить некоторый алгоритм планирования, так как в определенные моменты времени имеется сразу несколько готовых к выполнению процессов.

Время, мс

A

A1

A2

A3

A4

A5

B

B1

B2

B3

B4

C

C1

C2

C3

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

Начальный

Крайний

Крайний

Крайний

момент для A1,

срок для A1

срок для B1

срок для C1

B1, C1

Рис. 1. Три периодических процесса с разным периодом и временем обработки

Классическим примером статического алгоритма планирования реального времени для прерываемых периодических процессов является алгоритм RMS (Rate Monotonic Scheduling – планирование с приоритетом, пропорциональным частоте). Этот алгоритм может использоваться для процессов, удовлетворяющих следующим условиям:

1.Каждый периодический процесс должен быть завершен за время его периода

2.Ни один процесс не должен зависеть от любого другого процесса

3.Каждому процессу требуется одинаковое процессорное время на каждом интервале

4.У непериодических процессов нет жестких сроков

5.Прерывание процесса происходит мгновенно, без накладных расходов.

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

Алгоритм RMS работает, назначая каждому процессу фиксированный приоритет, обратно пропорциональный периоду и, соответственно, прямо пропорциональный частоте возникновения событий процесса. Например, в примере рис. 1 процесс A запускается каждые 30 мс (33 раза в секунду) и получает приоритет 33. Процесс B запускается каждые 40 мс (25 раз в секунду) и получает приоритет 25. Процесс C запускается каждые 50 мс (20 раз в секунду) и получает приоритет 20. Отметим, что реализация алгоритма требует, чтобы у всех процессов были разные приоритеты.

Во время работы планировщик всегда запускает готовый к работе процесс с наивысшим приоритетом, прерывая при необходимости работающий процесс с меньшим приоритетом. Таким образом, в нашем примере процесс A может прервать процессы B и C, процесс B может прервать C. Процесс C всегда вынужден ждать, пока процессор не освободится.

На рис. 2 показана работа алгоритма планирования для процессов A, B, C. Изначально все три процесса готовы к работе. Выбирается процесс с максимальным приоритетом – A. Ему разрешается работать в течение 10 мс, требующихся процессу до завершения. Когда процесс A освобождает процессор, начинает работать процесс B, а затем процесс C. Вместе эти процессы потребляют 30 мс, поэтому, когда процесс C заканчивает работу, снова запускается процесс A. Этот цикл повторяется до тех пор, пока в момент времени 70 мс у системы начинается период простоя. В момент времени 80 мс процесс B переходит в состояние готовности и запускается. Однако в момент времени 90 мс процесс A, обладающий более высоким приоритетом, также переходит в состояние готовности. Поэтому он прерывает выполнение процесса B и работает до момента времени 100 мс, пока не закончит свою работу. В этот момент времени система должна выбрать между процессом B, который не закончил обработку, и C, который находится в состоянии готовности. Выбирается процесс B, имеющий больший приоритет.

Время, мс

A

A1

A2

A3

A4

A5

B

B1

B2

B3

B4

C

C1

C2

C3

RMS

A1

B1

C1

A2

B2

C2

A3

B3

A4

B3

C3

A5

B4

EDF

A1

B1

C1

A2

B2

C2

A3

B3

A4

C3

A5

B4

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

Рис. 2. Пример алгоритмов планирования RMS и EDF.

Алгоритм RMS может быть использован только при не слишком высокой загруженности процессора. Предположим, что процесс A имеет продолжительность работы не 10 мс, а 15 мс. Коэффициент использования процессора в таком случае равен 0,975. Теоретически для данного случая должен иметься метод планирования. Работа алгоритма показана на рис. 3.

На этот раз процесс B завершает обработку к моменту времени 30 мс. В этот же момент процесс A снова приходит в состояние готовности. К тому времени, когда он заканчивает работу, снова готов процесс B и поскольку у него приоритет больше, чем у C, то запускается процесс B. Процесс C пропускает свой критический срок, алгоритм RMS терпит неудачу.

Теоретически было показано, что данный алгоритм гарантированно работает в любой системе периодических процессов при условии

åi= 1

CiPi m(21/ m − 1)

m

Таким образом, для 3 процессов максимальная загруженность процессора равна 0,780. Хотя в нашем примере (рис. 2) загруженность процессора составила 0,808, алгоритм RMS еще работал, хотя с другими периодами и временем обработки при том же коэффициенте загруженности процессора мог потерпеть неудачу. При увеличении коэффициента загруженности на алгоритм RMS не было надежды.

Время, мс

A

A1

A2

A3

A4

A5

B

B1

B2

B3

B4

C

C1

C2

C3

RMS

Неудача

A1

B1

A2

B2

EDF

A1

B1

C1

A2

B2

A3

C2

B3

A4

C3

A5

B4

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

Рис. 3. Пример, в котором алгоритм RMS не может быть использован

Другим популярным алгоритмом планирования является алгоритм EDF (Earliest Deadline First – процесс с ближайшим сроком завершения в первую очередь). Алгоритм EDF представляет собой динамический алгоритм, не требующий от процессов периодичности. Он также не требует и постоянства временных интервалов использования процессора. Каждый раз, когда процессу требуется процессорное время, он объявляет о своем присутствии и о своем сроке выполнения задания. Планировщик хранит список процессов, сортированный по срокам выполнения заданий. Алгоритм запускает первый процесс в списке, то есть тот, у которого самый близкий по времени срок выполнения. Когда новый процесс переходит в состояние готовности, система сравнивает его срок выполнения со сроком выполнения текущего процесса. Если у нового процесса график более жесткий, он прерывает работу текущего процесса.

Пример работы алгоритма EDF показан на рис. 2. Вначале все процессы находятся в состоянии готовности. Они запускаются в порядке своих крайних сроков. Процесс A должен быть выполнен к моменту времени 30, процесс B должен закончить работу к моменту времени 40, процесс C – 50. Таким образом, процесс A запускается первым. Вплоть до момента времени 90 выбор алгоритма EDF не отличается от RMS. В момент времени 90 процесс A переходит в состояние готовности с тем же крайним сроком выполнения 120, что и у процесса B. Планировщик имеет право выбрать любой из процессов, но поскольку с прерыванием процесса B не связано никаких накладных расходов, лучше предоставить возможность продолжать работу этому процессу.

Рассмотрим рис. 3. В момент времени 30 между процессами A и C возникает спор. Поскольку срок выполнения процесса C равен 50 мс, а процесса A – 60 мс, планировщик выбирает процесс C. Этим данный алгоритм отличается от алгоритма RMS, в котором побеждает процесс A, как обладающий большим приоритетом. В момент времени 90 процесс A переходит в состояние готовности в 4 раз. Предельный срок процесса A такой же, что и у текущего процесса, поэтому у планировщика появляется выбор – прервать работу процесса B или нет. Поскольку необходимости прерывать процесс B нет, то он продолжает работу.

Алгоритм EDF работает с любым набором процессов, для которых возможно планирование. Платой за это является использование более сложного алгоритма.

Литература

  • Современные операционные системы, Э. Таненбаум, 2002, СПб, Питер, 1040 стр., (в djvu 10.1Мбайт) подробнее>>
  • Сетевые операционные системы Н. А. Олифер, В. Г. Олифер (в zip архиве 1.1Мбайт)
  • Сетевые операционные системы Н. А. Олифер, В. Г. Олифер, 2001, СПб, Питер, 544 стр., (в djvu 6.3Мбайт) подробнее>>

4.1 Основные понятия планирования процессов

Планирование — обеспечение поочередного доступа процессов к одному процессору.

Планировщик — отвечающая за это часть операционной системы.

Алгоритм планирования — используемый алгоритм для планирования.

Ситуации, когда необходимо планирование:

  1. Когда создается процесс

  2. Когда процесс завершает работу

  3. Когда процесс блокируется на операции ввода/вывода, семафоре, и т.д.

  4. При прерывании ввода/вывода.

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

Алгоритм планирования с переключениями (приоритетный) — требует прерывание по аппаратному таймеру, процесс работает только отведенный период времени, после этого он приостанавливается по таймеру, чтобы передать управление планировщику.

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

Основные три системы:

  1. Системы пакетной обработки — могут использовать неприоритетный и приоритетный алгоритм (например: для расчетных программ).

  2. Интерактивные системы — могут использовать только приоритетный алгоритм, нельзя допустить чтобы один процесс занял надолго процессор (например: сервер общего доступа или персональный компьютер).

  3. Системы реального времени — могут использовать неприоритетный и приоритетный алгоритм (например: система управления автомобилем).

Задачи алгоритмов планирования:

  1. Для всех систем
    Справедливость — каждому процессу справедливую долю процессорного времени
    Контроль над выполнением принятой политики
    Баланс — поддержка занятости всех частей системы (например: чтобы были заняты процессор и устройства ввода/вывода)

  2. Системы пакетной обработки
    Пропускная способность — количество задач в час
    Оборотное время — минимизация времени на ожидание обслуживания и обработку задач.
    Использование процесса — чтобы процессор всегда был занят.

  3. Интерактивные системы
    Время отклика — быстрая реакция на запросы
    Соразмерность — выполнение ожиданий пользователя (например: пользователь не готов к долгой загрузке системы)

  4. Системы реального времени
    Окончание работы к сроку — предотвращение потери данных
    Предсказуемость — предотвращение деградации качества в мультимедийных системах (например: потерь качества звука должно быть меньше чем видео)

4.2 Планирование в системах пакетной обработки

4.2.1 «Первый пришел — первым обслужен» (FIFO — First In Fist Out)

Процессы ставятся в очередь по мере поступления.

Преимущества:

  • Простота

  • Справедливость (как в очереди покупателей, кто последний пришел, тот оказался в конце очереди)

Недостатки:

  • Процесс, ограниченный возможностями процессора может затормозить более быстрые процессы, ограниченные устройствами ввода/вывода.

4.2.2 «Кратчайшая задача — первая»

п

Нижняя очередь выстроена с учетом этого алгоритма

Преимущества:

  • Уменьшение оборотного времени

  • Справедливость (как в очереди покупателей, кто без сдачи проходит в перед)

Недостатки:

  • Длинный процесс занявший процессор, не пустит более новые краткие процессы, которые пришли позже.

4.2.3 Наименьшее оставшееся время выполнение

Аналог предыдущего, но если приходит новый процесс, его полное время выполнения сравнивается с оставшимся временем выполнения текущего процесса.

4.3 Планирование в интерактивных системах

4.3.1 Циклическое планирование

Самый простой алгоритм планирования и часто используемый.

Каждому процессу предоставляется квант времени процессора. Когда квант заканчивается процесс переводится планировщиком в конец очереди. При блокировке процессор выпадает из очереди.

о

Пример циклического планирования

Преимущества:

  • Простота

  • Справедливость (как в очереди покупателей, каждому только по килограмму)

Недостатки:

  • Если частые переключения (квант — 4мс, а время переключения равно 1мс), то происходит уменьшение производительности.

  • Если редкие переключения (квант — 100мс, а время переключения равно 1мс), то происходит увеличение времени ответа на запрос.

4.3.2 Приоритетное планирование

Каждому процессу присваивается приоритет, и управление передается процессу с самым высоким приоритетом.

Приоритет может быть динамический и статический.

Динамический приоритет может устанавливаться так:

П=1/Т, где Т- часть использованного в последний раз кванта

Если использовано 1/50 кванта, то приоритет 50.

Если использован весь квант, то приоритет 1.

Т.е. процессы, ограниченные вводом/вывода, будут иметь приоритет над процессами ограниченными процессором.

Часто процессы объединяют по приоритетам в группы, и используют приоритетное планирование среди групп, но внутри группы используют циклическое планирование.

р

Приоритетное планирование 4-х групп

4.3.3 Методы разделения процессов на группы

Группы с разным квантом времени

Сначала процесс попадает в группу с наибольшим приоритетом и наименьшим квантом времени, если он использует весь квант, то попадает во вторую группу и т.д. Самые длинные процессы оказываются в группе наименьшего приоритета и наибольшего кванта времени.

о

Процесс либо заканчивает работу, либо переходит в другую группу

Этот метод напоминает алгоритм — «Кратчайшая задача — первая».

Группы с разным назначением процессов

о

Процесс, отвечающий на запрос, переходит в группу с наивысшим приоритетом.

Такой механизм позволяет повысить приоритет работы с клиентом.

Гарантированное планирование

В системе с n-процессами, каждому процессу будет предоставлено 1/n времени процессора.

Лотерейное планирование

Процессам раздаются «лотерейные билеты» на доступ к ресурсам. Планировщик может выбрать любой билет, случайным образом. Чем больше билетов у процесса, тем больше у него шансов захватить ресурс.

Справедливое планирование

Процессорное время распределяется среди пользователей, а не процессов. Это справедливо если у одного пользователя несколько процессов, а у другого один.

4.4 Планирование в системах реального времени

Системы реального времени делятся на:

  • жесткие (жесткие сроки для каждой задачи) — управление движением

  • гибкие (нарушение временного графика не желательны, но допустимы) — управление видео и аудио

Внешние события, на которые система должна реагировать, делятся:

  • периодические — потоковое видео и аудио

  • непериодические (непредсказуемые) — сигнал о пожаре

Что бы систему реального времени можно было планировать, нужно чтобы выполнялось условие:

о

m — число периодических событий

i — номер события

P(i) — период поступления события

T(i) — время, которое уходит на обработку события

Т.е. перегруженная система реального времени является не планируемой.

4.4.1 Планирование однородных процессов

В качестве однородных процессов можно рассмотреть видео сервер с несколькими видео потоками (несколько пользователей смотрят фильм).

Т.к. все процессы важны, можно использовать циклическое планирование.

Но так как количество пользователей и размеры кадров могут меняться, для реальных систем он не подходит.

4.4.2 Общее планирование реального времени

Используется модель, когда каждый процесс борется за процессор со своим заданием и графиком его выполнения.

Планировщик должен знать:

  • частоту, с которой должен работать каждый процесс

  • объем работ, который ему предстоит выполнить

  • ближайший срок выполнения очередной порции задания

Рассмотрим пример из трех процессов.

Процесс А запускается каждые 30мс, обработка кадра 10мс

Процесс В частота 25 кадров, т.е. каждые 40мс, обработка кадра 15мс

Процесс С частота 20 кадров, т.е. каждые 50мс, обработка кадра 5мс

о

Три периодических процесса

Проверяем, можно ли планировать эти процессы.

10/30+15/40+5/50=0.808<1

Условие выполняется, планировать можно.

Будем планировать эти процессы статическим (приоритет заранее назначается каждому процессу) и динамическим методами.

4.4.3 Статический алгоритм планирования RMS (Rate Monotonic Scheduling)

Процессы должны удовлетворять условиям:

  • Процесс должен быть завершен за время его периода

  • Один процесс не должен зависеть от другого

  • Каждому процессу требуется одинаковое процессорное время на каждом интервале

  • У непериодических процессов нет жестких сроков

  • Прерывание процесса происходит мгновенно

Приоритет в этом алгоритме пропорционален частоте.

Процессу А он равен 33 (частота кадров)

Процессу В он равен 25

Процессу С он равен 20

Процессы выполняются по приоритету.

о

Статический алгоритм планирования RMS (Rate Monotonic Scheduling)

4.4.4 Динамический алгоритм планирования EDF (Earliest Deadline First)

Наибольший приоритет выставляется процессу, у которого осталось наименьшее время выполнения.

При больших загрузках системы EDF имеет преимущества.

Рассмотрим пример, когда процессу А требуется для обработки кадра — 15мс.

Проверяем, можно ли планировать эти процессы.

15/30+15/40+5/50=0.975<1

Загрузка системы 97.5%

о

Динамический алгоритм планирования EDF (Earliest Deadline First)

Алгоритм планирования RMS терпит неудачу.

Понравилась статья? Поделить с друзьями:

Другие крутые статьи на нашем сайте:

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии