Найти в Дзене
Разумный мир

Система реального времени. § 2. Самое важное это гарантии

Оглавление

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

Система реального времени. § 1. Реальное время. Главное, успеть
Разумный мир25 апреля 2023

Опираться на скорость поступления событий не всегда верно

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

Среднестатистическая профессиональная машинистка может печатать примерно от 50 до 80 слов в минуту с количеством опечаток не более 3 на страницу из 1860 знаков. Это соответствует максимальной скорости печати примерно от 300 до 400 символов в минуту. То есть, до 7 символов в секунду. Это очень быстро, но некоторые умудряются печать еще быстрее. Скорость печати зависит от многих факторов. В частности, на электрических пишущих машинках она выше.

Если вам интересно, то можете почитать документ "Единые нормы времени (выработки) на машинописные работы" 1984 года.

Таким образом, для нашей первой машинистки, машинка должна успевать печатать один символ не более, чем 140 мс. И она успевает, что и дает нам право считать, что машинка работает в реальном масштабе времени.

Теперь посадим за машинку вторую машинистку. Пусть ее скорость печати не превышает 180 знаков в минуту, то есть, 3 знака в секунду. Теперь машинка должна успевать печатать один символ не более, чем за 330 мс. Вот здесь и кроется причина первой неточности нашего первого определения.

Да, система (пишущая машинка, в нашем случае) может работать медленнее, когда на ней печатает вторая машинистка. Но должна ли она работать медленнее? Ответ очевиден - нет! А это означает, что наше условие

To ⩽ Tс

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

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

Критерием, параметром, любой системы является ее время реакции на входящее событие. Это время не обязательно постоянно. Система реального времени отличается от всех прочих систем тем, что ГАРАНТИРУЕТ время отклика (реакции, обработки). Таким образом, критерием, позволяющим считать систему системой реального времени является не то, что она успевает обрабатывать поступающие события, а то, что она гарантирует время реакции вне зависимости от частоты этих событий.

Теперь мы может внести первое уточнение наше определение из предыдущей статьи:

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

Это все еще не совсем точное и полное определение, но оно уже гораздо точнее предыдущего. Обратите внимание, система не перестает быть системой реального времени (если она таковой является) даже в том случае, если не успевает обрабатывать поступающие на вход события! Просто условия применения системы выходят за допустимые для системы, и определяемые в ее параметрах, границы.

Пишущие машинки обычно не рассматривают как системы, тем более, реального времени. Но я не случайно выбрал именно этот пример. Давайте посмотрим, всегда ли мы имеем право считать пишущую машинку системой реального времени. Для это возьмем механическую пишущую машинку "Любава" выпускавшуюся Рязанским заводом счетно-аналитических машин. В ее руководстве по эксплуатации нет параметров связанных со скоростью печати

Технические параметры пишущей машинки "Любава". Фрагмент руководства по эксплуатации
Технические параметры пишущей машинки "Любава". Фрагмент руководства по эксплуатации

Производитель не гарантирует никаких параметров времени обработки (печати одного символа). А значит, мы не можем считать эту пишущую машинку системой реального времени. В полном соответствии с нашим определением.

В качестве второго примера возьмем электро-механическую пишущую машинку "Ятрань" выпускавшуюся Кировоградским заводом "Пишмаш". В ее руководстве по эксплуатации указаны интересующие нас параметры

Часть параметров пишущей машинки "Ятрань". Гарантированные параметры скорости печати обведены мной красной рамкой. Фрагмент руководства по эксплуатации
Часть параметров пишущей машинки "Ятрань". Гарантированные параметры скорости печати обведены мной красной рамкой. Фрагмент руководства по эксплуатации

Обратите внимание, что максимальная скорость печати здесь указана без гарантии, просто как некоторое число. Это теоретически достижимый предел, минимальное время печати одного символа, минимальное время обработки (отклика). А вот эксплуатационная скорость печати уже гораздо интереснее. Она задает верхний предел ("не менее) скорости печати во время эксплуатации машины, во всех условиях. Причем этот предел уже гарантированный.

И именно эта гарантия дает право считать пишущую машинку "Ятрань" системой реального времени. В отличии от машинки "Любава". "Ятрань", как система реального времени, гарантирует, что время обработки события не превышает 192.3 мс. Минимальное время обработки 62.5 мс, но здесь уже нет гарантий.

Когда требуется гарантировать разные времена

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

Машина автоматической сортировки гороха. Иллюстрация моя
Машина автоматической сортировки гороха. Иллюстрация моя

Машина для сортировки гороха состоит из бункера, в который засыпается неотсортированный горох и датчика качества, который управляет заслонкой направляющей очередную горошину в один из контейнеров для отсортированного гороха. Результатом работы машины является отсортированный горох, когда хорошие горошины собраны в одном контейнере, а плохие в другом.

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

Давайте внимательнее рассмотрим работу работу нашей системы. Начнем с датчика качества. Пусть он будет оптическим

Устройство датчика качества машины сортировки гороха. Иллюстрация моя
Устройство датчика качества машины сортировки гороха. Иллюстрация моя

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

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

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

Горошины на иллюстрации движутся сверху вниз. Мы считаем, что во время прохождения горошины мимо окна датчика яркость отраженного света постоянна или изменяется незначительно. Во время прохождения мимо окна горошин разного качества яркость плавно изменяется. При прохождении двух горошин одинакового качества яркость не изменяется.

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

Tмакс = Vмакс / Dмин

Это время должен учитывать и гарантировать разработчик датчика качества как системы реального времени. Менее очевидно, что для датчика должно гарантироваться и минимальное время, которое позволяет гарантировать окончание переходно процесса. То есть, что мимо окна проходит собственно горошина. Это время определить уже сложнее. Например, если размер окна равен половине диаметра горошины, то хорошим выбором будет примерно 15% от времени прохождения горошины мимо окна

Для датчика качества должно гарантироваться как минимальное, так и максимальное время. Иллюстрация моя
Для датчика качества должно гарантироваться как минимальное, так и максимальное время. Иллюстрация моя

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

А значит, мы можем еще немного уточнить наше определение:

  • Система называется системой реального времени если она обеспечивает гарантированное время отклика (реакции, обработки), вне зависимости от скорости поступления событий на вход системы, лежащее в диапазоне от Тмин до Тмакc.

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

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

Управление заслонкой в сортировочной машине. Иллюстрация моя
Управление заслонкой в сортировочной машине. Иллюстрация моя

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

Это означает, что для системы критичным будет именно минимальное время реакции, время задержки сигнала управления заслонкой. Максимальное чуть менее критично. Эту задержку может формировать как датчик качества, так и блок управления заслонкой. Причем правильным будет именно последнее. Кроме того, блок управления заслонкой должен учитывать и инерционность привода заслонки, которая неизбежно есть в реальных системах.

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

Время жесткое и мягкое

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

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

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

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

Заключение

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

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

На этом цикл статей о системах реального времени далеко не заканчивается. Продолжение следует...

До новых встреч!