Что такое реальный масштаб времени

Реальное время

Реальное время — режим работы автоматизированной системы обработки информации и управления, при котором учитываются ограничения на временны́е характеристики функционирования.

Примеры временных характеристик и связанных с ними ограничений:

Также (преимущественно, в материалах рекламного и коммерческого характера) встречаются термины:

Система реального времени (СРВ) — это любая система, работающая в режиме реального времени.

Содержание

Назначение

Назначение систем, работающих в режиме реального времени, — взаимодействие с объектами внешнего (по отношению к системе) мира в темпе процессов, протекающих в этих объектах. Как правило, система реального времени должна:

За своевременность воздействий на объект отвечает характеристика deadline. Задержка реакции на внешнее событие характеризуется значениями latency и jitter.

Примеры

Примеры систем, работающих в режиме реального времени:

Особенности систем реального времени, управляющих технологическими процессами

Основной особенностью является необходимость использования специализированных программных, аппаратных и алгоритмических решений:

Проблемы

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

См. также

Ссылки

Полезное

Смотреть что такое «Реальное время» в других словарях:

Реальное время — в биржевом деле способ котировки ценных бумаг, при котором немедленно показываются самые последние предложения цены покупки или продажи. По английски: Real time См. также: Биржевые котировки Финансовый словарь Финам. Реальное время Реальное время … Финансовый словарь

реальное время — РВ реальный масштаб времени РМВ О типе операционной системы, режиме обработки или работы в реальном времени. [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом… … Справочник технического переводчика

реальное время — realusis laikas statusas T sritis automatika atitikmenys: angl. apparent time; real time; true time vok. Echtzeit, f; Realzeit, f; wahre Zeit, f rus. истинное время, n; реальное время, n pranc. temps réel, m ryšiai: sinonimas – tikrasis laikas … Automatikos terminų žodynas

реальное время — 01.02.44 реальное время [ real time]: Уровень оперативности, который пользователь ощущает как практически мгновенный или который позволяет устройству не отставать от некоторого внешнего процесса. Источник … Словарь-справочник терминов нормативно-технической документации

Реальное время — Котировка акции или облигации в реальном времени отражает самое последнее предложение цены покупки или продажи. Задержанная котировка показывает те же самые цены покупки или продажи через 15 20 минут после совершения сделки … Инвестиционный словарь

фиктивное реальное время — — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом EN real time dummy … Справочник технического переводчика

фиктивное реальное время (о режиме работы) — — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN real time dummyRTD … Справочник технического переводчика

ВРЕМЯ — фундаментальное понятие человеческого мышления, отображающее изменчивость мира, процессуальный характер его существования, наличие в мире не только «вещей» (объектов, предметов), но и событий. В содержание общего понятия В. входят аспекты,… … Философская энциклопедия

время обработки — Реальное время работы над продуктом при создании проекта, физическом производстве, работе над заказом и пр. Обычно время обработки намного меньше времени выполнения заказа или времени выпуска. [http://www.up pro.ru/library/production… … Справочник технического переводчика

время реальное в отличие от художественного — Разграничивается со времен А.А. Потебни. Реальное время отличается одномерностью, непрерывностью, необратимостью, упорядоченностью [Н.А. Николина 2003]. Для художественного времени характерны многомерность, обратимость, прерывистость,… … Словарь лингвистических терминов Т.В. Жеребило

Источник

Вся правда об ОСРВ от Колина Уоллса

Вся правда об ОСРВ. Статья #1.

Операционные системы реального времени: введение

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

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

Для разработчика ключевым аспектом ОСРВ является API, набор вызова процедур, предоставляющий доступ к функционалу ОСРВ. В серии буду представлены статьи на эту тему, посвященные тому, как устроен API, какие стандарты доступны и как перейти с одного API на другой.

Ниже список тем, которые мы рассмотрим в ближайшее время:

Однако, чтобы объяснить внутреннее устройство ОСРВ, используются примеры кода реального продукта – Nucleus SE.

Вся правда об ОСРВ. Статья #2

ОСРВ: Структура и режим реального времени
Структура программы и режим реального времени

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

Вернемся к определению встраиваемой системы. В попытках объяснить друзьям и семье, над чем я работаю, я пришел к следующему объяснению: встраиваемая система – любой электронный прибор, в котором есть процессор, но который обычно не принято описывать как компьютер.

Операционная система (ОС) всегда стоит на компьютере; в современных встраиваемых системах применяются только некоторые виды ОС. Несмотря на то, что использование ядра преобладает в высокопроизводительных (32- и 64-разрядных) системах, можно извлекать выгоду и из его применения в маломощных устройствах. В центре внимания этих статей – операционные системы, как в общем, так и со спецификой внедрения.

Зачем вообще использовать операционную систему?

Давайте разберемся, почему операционные системы применяются в принципе. Существует много объяснений, некоторые из них зависят как от человеческого фактора, так и от технических характеристик. Помню историю. В одном из наших офисов был кухонный уголок, где можно было сварить кофе. На двери висела табличка с надписью: «Пожалуйста, не закрывайте дверь». Под ней кто-то написал: «Почему нет?», на что кто-то другой ответил: «Потому что». Очень укороченный вариант фразы «потому что мы говорим вам поступать именно таким образом». По тем же соображениям операционные системы применяются в некоторых системах, просто потому что так нужно делать.

Другое объяснение кроется в использовании десктопных приложений. С чего вы начнете, если будете писать программное обеспечение для ПК или Mac? Вы включите компьютер, запустите Windows/Linux или macOS и начнете программировать. Наличие операционной системы – это заданное условие, и оно предоставляет ряд полезных сервисов. Навряд ли вы вздумаете начать с нуля, программируя «голое» железо. Поэтому неудивительно, если инженер, у которого есть опыт написания ПО, но для которого встроенное ПО в новинку, будет рассчитывать на наличие операционной системы в разрабатываемой им системе.

Стоит отметить ключевой аспект десктопной ОС, о котором знают пользователи, — пользовательский интерфейс (англ. User Interface, UI). Спросите у кого-нибудь, что такое Windows, и вам ответят, что это окна, меню, диалоговые окна, иконки, но вряд ли упомянут файловую систему, межпрограммную коммуникацию и способность взаимодействовать с другими системами. В этом основное отличие десктопной от встраиваемой системы: в последней может и не быть пользовательского интерфейса, а если он и есть, то он достаточно незамысловатый. Это первое из многих ключевых отличий:

Во-первых, существует выполнение программ в стиле DOS, когда программы выполняются поочередно.

Каждая программа запускается, реализуется и завершается. Мы используем, скажем, программу 1, затем программу 2, затем, возможно, сделаем перерыв, обратимся к программе 3, а потом снова вернемся к программе 2. Второе использование программы 2 начинается заново: запуск не начинается с того места, где мы остановились до этого (кроме тех случаев, когда приложение само не предоставляет такую возможность).

После DOS многое усложнилось, так как Windows стала обычным делом. Выполнение программ в стиле Windows подразумевает запуск нескольких программ в многопоточном режиме.

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

Читайте также:  Что такое нейросети простыми словами и как они работают

Некоторым портативным устройствам требуется больше гибкости, чем может предложить DOS, но с учетом ограниченных ресурсов, требуются более низкие, чем у Windows, накладные расходы. В итоге, имеем выполнение программ в стиле iOS, а именно:

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

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

Модели встраиваемых программ

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

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

В зависимости от требований приложения, встраиваемое ПО может обладать различными структурами разного уровня сложности, например:

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

Если требуется что-то посложнее, можно попробовать разместить некритичную по времени часть кода в основном цикле, а чувствительную ко времени — в обработчике прерываний (англ. Interrupt Service Routines, ISR). Действия обработчика прерываний в основном достаточно короткие, выполняющие только критически важные задачи и отмечающие участки основного цикла для завершения работы при первой же возможности. Трудности могут возникнуть, когда понадобится распределять работу между основным циклом и обработчиком прерываний (а также между несколькими разработчиками).

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

Что такое реальное время?

Ранее я писал, что многие встраиваемые приложения работают в режиме реального времени. В данном контексте принято говорить об операционных системах реального времени, а не о простой ОС. Определимся с терминологией.

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

Если не выполняются временные ограничения системы, считается, что произошел системный сбой».

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

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

ОСРВ (при правильном использовании) обеспечивает очень точный контроль за распределением времени процессора на выполнение задач и, следовательно, делает приложения полностью детерминированными. Единственное, что может испортить эту картину, – это прерывания. Есть ОСРВ, которые полностью контролируют прерывания. Их работа заключается в том, чтобы управлять обслуживанием прерываний в рамках работы планировщика задач. Несмотря на то, что это должно было бы приводить к предсказуемому поведению, этот механизм достаточно сложно устроен и заключает в себе высокие накладные расходы.

Большинство ОСРВ просто позволяет обработчику прерываний «красть» время у задачи, запущенной в момент прерывания. Это, в свою очередь, вынуждает программиста писать код обработчика прерывания как можно короче. В результате имеем допустимую погрешность реального времени. Единственная сложность состоит в выполнении вызовов служб ОСРВ в рамках задачи-обработчика. Некоторые вызовы могут быть вполне безобидными, в то время как другие станут причиной переключения контекста при возврате из прерывания. Такая ситуация должна быть специально улажена, что возможно с помощью различных ОСРВ.

Когда мы работали над нашей собственной операционной системой реального времени ОСРВ МАКС (ранее уже публиковал статьи о ней), наша команда «наткнулась» на блог Колина Уоллса (Colin Walls), эксперта в области микроэлектроники и встроенного ПО компании Mentor Graphics. Статьи показались интересными, переводили их для себя, но, чтобы не «писать в стол» решили опубликовать. Надеюсь, они будут вам также полезны. Если так, то дальше планируем опубликовать все переведенные статьи серии.

Источник

Обзор систем реального времени

Узнайте о влиянии систем реального времени на приложения интернета вещей в разных отраслях от производства до здравоохранения, нефтегазовой промышленности и робототехники.

Основные выводы

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

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

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

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

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

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

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

Расширение глобальных связей, изменение требований потребителей к постоянно доступным данным и постоянно работающим системам и появление корпоративных сред с сенсорными возможностями вызывают необходимость создавать, собирать и анализировать экспоненциально растущие объемы данных. По оценкам IDC, к 2025 году в мире будет создано 79,4 1 зеттабайт данных, и почти 30 процентов 2 этих данных нужно будет обрабатывать в реальном времени с помощью систем реального времени.

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

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

Источник

РЕАЛЬНЫЙ МАСШТАБ ВРЕМЕНИ

Смотреть что такое «РЕАЛЬНЫЙ МАСШТАБ ВРЕМЕНИ» в других словарях:

реальный масштаб времени — в реальном масштабе времени — [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия Синонимы в реальном масштабе времени EN ral time … Справочник технического переводчика

Масштаб — (нем. Maßstab, букв. «мерная палка»: Maß «мера», Stab «палка») в общем случае отношение двух линейных размеров. Во многих областях практического применения масштабом называют отношение размера изображения к размеру изображаемого… … Википедия

РМВ — реальный масштаб времени; в реальном масштабе времени реальный масштаб времени … Словарь сокращений русского языка

Операционная система — У этого термина существуют и другие значения, см. Операционная система (значения). Запрос «OS» перенаправляется сюда; см. также другие значения. Операционная система, сокр. ОС (англ. operating system, OS) комплекс управляющих и… … Википедия

Читайте также:  Что такое общая этиология

реальное время — РВ реальный масштаб времени РМВ О типе операционной системы, режиме обработки или работы в реальном времени. [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом… … Справочник технического переводчика

Системное программное обеспечение — Системное программное обеспечение это комплекс программ, которые обеспечивают управление компонентами компьютерной системы, такими как процессор, оперативная память, устройства ввода вывода, сетевое оборудование, выступая как «межслойный… … Википедия

РМВ — реальный масштаб времени в реальном масштабе времени Словарь: С. Фадеев. Словарь сокращений современного русского языка. С. Пб.: Политехника, 1997. 527 с … Словарь сокращений и аббревиатур

Титаник (фильм, 1997) — Это статья о фильме 1997 года, возможно, вы искали статью о фильме другого года. См. Титаник (значения). Титаник Titanic … Википедия

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

Источник

Лекция 1 Функционирование в «Реальном мас­штабе времени»

Лекция 1 Функционирование в «Реальном мас­штабе времени»

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

Толковый словарь по вычислительным системам [7], дает такое определение

R.052 real-time system система реального времени (СРВ)

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

В толковом словаре по информатике [8] дается такое определе­ние (стр. 335): Режим реального времени [real time processing]. Режим

обработки данных, при котором обеспечивается взаимодействие вы­числительной системы с внешними по отношению к ней процессами в темпе, соизмеримом со скоростью протекания этих процессов.

Каноническое определение системы реального времени дано Дональдом Гиллиесом и выглядит так:

«Системой реального времени является такая система, коррект­ность функционирования которой определяется не только корректно­стью выполнения вычислений, но и временем, в которое получен тре­буемый результат. Если требования по времени не выполняются, то считается, что произошел отказ системы». Другие добавляют: «По­этому необходимо, чтобы было гарантировано [аппаратными и про­граммными средствами и алгоритмами обработки] выполнение тре­бований по времени. Гарантия выполнения требований по времени необходима, чтобы поведение системы было предсказуемо. Также желательно, чтобы система обеспечивала высокую степень использо­вания ресурсов, чтобы удовлетворять требованиям по времени [с ми­нимальными затратами]».

Хорошим примером является робот, который должен брать что-либо с ленты конвейера. Объекты на конвейере движутся, и робот имеет некоторый небольшой интервал времени для того, чтобы схва­тить объект. Если робот опоздает, то объекта уже не будет на месте, и поэтому работа будет неверной, даже если робот переместил захват в правильное положение. Если робот поспешит, то объекта там еще не будет, более того, робот может заблокировать движение объектов.

Отметим следующую особенность: в примере с роботом и имеем настоящий, «жесткий» режим реального времени (hard real time), и если робот опоздает, то это приведет к полностью ошибочной опера­ции. Однако это мог бы быть режим «квазиреального» времени (soft real time), если бы опоздание робота приводило бы только к потере производительности. Многое из того, что сделано в области про­граммирования в реальном времени, в действительности работает в режиме «квазиреального» времени. Грамотно разработанные систе­мы, как правило, имеют уровень безопасности/коррекции поведения

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

Бывает, что термин «система реального времени» применяют в значении «интерактивная система» (on-line). Часто это просто рек­ламный ход. Например, системы заказа билетов или системы склад­ского учета не являются системами «реального времени», так как че­ловек-оператор без проблем перенесет задержку ответа на несколько сотен миллисекунд.

Из приведенного выше можно сделать выводы:

— термин «система реального времени» в настоящее время мо­жет быть записан так: «Системой реального времени является такая система, корректность функционирования которой определяется не только корректностью выполнения вычислений, но и временем, в ко­торое получен требуемый результат. Если требования по времени не выполняются, то считается, что произошел отказ системы».

Для того чтобы система могла удовлетворить требованиям, предъявляемым к системам реального времени, аппаратные, про­граммные средства и алгоритмы работы системы должны гарантиро­вать заданные временные параметры реакции системы. Время реак­ции не обязательно должно быть очень маленьким, но оно должно быть гарантированным (и отвечающим поставленным требованиям);

— использование термина «система реального времени», опреде­ленного выше, для обозначения интерактивных и высокопроизводи­тельных систем неверно;

— термин «квазиреальное время» (soft real-time) хотя и использу­ется, но четко не определен. До его четкого определения вряд ли воз­можно его применение в документах (кроме рекламных). С уверен­ностью можно сказать, что смысл термина «реальное время» тракту­ется специалистами по-разному в зависимости от области их профес­сиональных интересов, от того, являются они теоретиками или прак­тиками, и даже просто отличного опыта и круга общения.

— практически все системы промышленной автоматизации явля­ются системами реального времени.

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

Интуитивно понятно, что быстродействие системы реального времени должно быть тем больше, чем больше скорость протекания процессов на объекте контроля и управления. Чтобы оценить необхо­димое быстродействие для систем, имеющих дело со стационарными процессами, часто используют теорему Котельникова [6], из которой следует, что частота дискретизации сигналов должна быть как мини­мум в 2 раза выше граничной частоты их спектра.

При работе с широкополосными по своей природе переходными процессами (транзиент-анализ) часто применяют быстродействую­щие АЦП с буферной памятью, куда с необходимой скоростью запи­сывается реализация сигнала, которая затем анализируется и/или ре­гистрируется вычислительной системой. При этом требуется закон­чить всю необходимую обработку до следующего переходного про-

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

Принято различать системы «жесткого» и «мягкого» реального времени. Эти различия не связаны с органолептическими свойствами систем. Тогда что же это такое?

1. Системой «жесткого» реального времени называется система, где неспособность обеспечить реакцию на какие-либо события в за­данное время является отказом и ведет к невозможности решения по­ставленной задачи.

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

Многие теоретики ставят здесь точку, из чего следует, что время реакции в «жестких» системах может составлять и секунды, и часы, и недели. Однако большинство практиков считают, что время реакции в системах «жесткого» реального времени должно быть все-таки ми­нимальным. Идя на поводу у практиков, так и будем считать. Разуме­ется, однозначного мнения о том, какое время реакции свойственно «жестким» системам, нет. Более того, с увеличением быстродействия микропроцессоров это время имеет тенденцию к уменьшению, и если раньше в качестве границы называлось значение 1 мс, то сейчас, как правило, называется время порядка 100 мкс.

2. Точного определения для «мягкого» реального времени не существует, поэтому будем считать, что сюда относятся все системы реального времени, не попадающие в категорию «жестких».

Так как система «мягкого» реального времени может не успе­вать все делать ВСЕГДА в заданное время, возникает проблема опре­деления критериев успешности (нормальности) ее функционирова­ния. Вопрос этот совсем не простой, так как в зависимости от функ­ций системы это может быть максимальная задержка в выполнении каких-либо операций, средняя своевременность отработки событий и т. п. Более того, эти критерии влияют на то, какой алгоритм планиро­вания задач является оптимальным. Вообще говоря, системы «мягко­го» реального времени проработаны теоретически далеко не до кон­ца.

^ Лекция2. Задачи, процессы, потоки

Существуют различные определения термина «задача» для мно­гозадачной ОС РВ. Мы будем считать задачей набор операций (ма­шинных инструкций), предназначенный для выполнения логически законченной функции системы. При этом задача конкурирует с дру­гими задачами за получение контроля над ресурсами вычислительной системы.

Читайте также:  Что такое спорофит у мхов

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

Хорошим примером многопоточной программы является редак­тор текста WORD, где в рамках одного приложения может одновре­менно происходить и набор текста, и проверки правописания.

2. Использование потоками общей области памяти позволяет эффективно организовать межзадачный обмен сообщениями (доста­точно передать указатель на сообщение). Процессы не имеют общей области памяти. Поэтому ОС должна либо целиком скопировать со­общение из области памяти одной задачи в область памяти другой (что для больших сообщений весьма накладно), либо предусмотреть специальные механизмы, которые позволили бы одной задаче по­лучить доступ к сообщению из области памяти другой задачи.

3. Как правило, контекст потоков меньше, чем контекст процес­сов, а значит, время переключения между задачами-потоками мень­ше, чем между задачами-процессами.

4. Так как все потоки, а иногда и само ядро РВ размещаются в одном ЕХЕ-модуле, значительно упрощается использование про­грамм-отладчиков (debugger).

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

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

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

Реализация механизмов управления процессами и потоками, возможность их взаимного сосуществования и взаимодействия опре­деляются конкретным ПО РВ.

^ 2.2. Основные свойства задач

контекстов и является, по сути, основным механизмом ОС РВ при пе­реходе от выполнения одной задачи к выполнению другой.

^ Состояние (статус) задачи. С точки зрения операционной сис­темы, задача может находиться в нескольких состояниях. Число и на­звание этих состояний различаются от одной ОС к другой. По-видимому, наибольшее число состояний задачи определено в языке Ada. Тем не менее, практически в любой ОС РВ загруженная на вы­полнение задача может находиться, по крайней мере, в трех состоя­ниях.

^ Многократный запуск задач. Как правило, многозадачные ОС позволяют запускать несколько копий одной и той же задачи. При этом для каждой такой копии создается свой TCB и выделяется своя область памяти. В целях экономии памяти может быть предус­мотрено совместное использование одного и того же исполняемого кода для всех запущенных копий. В этом случае программа должна обеспечивать повторную входимость (реентерабельность). Кроме то­го, программа не должна использовать временные файлы с фиксиро­ванными именами и должна корректно осуществлять доступ к гло­бальным ресурсам.

Реентерабельность (повторная входимость) означает возмож­ность без негативных последствий временно прервать выполнение

какой-либо функции или подпрограммы, а затем вызвать эту функ­цию или подпрограмму снова. Частным проявлением реентерабель­ности является рекурсия, когда тело подпрограммы содержит вызов самой себя. Классическим примером нереентерабельной системы яв­ляется DOS, a типичной причиной нереентерабельности служит ис­пользование глобальных переменных. Предположим, что у нас есть функция, реализующая низкоуровневую запись на диск, и пусть она использует глобальную переменную write_sector, которая устанавли­вается в соответствии с параметром, передаваемым этой функции при вызове. Предположим теперь, что Задача А вызывает эту функцию с параметром 3, то есть хочет записать данные в сектор номер 3. До­пустим, что когда переменная write_sector уже равна 3, но сама за­пись еще не произведена, выполнение Задачи А прерывается и начи­нает выполняться Задача В, которая взывает ту же функцию, но с ар­гументом 10. После того как запись в сектор номер 10 будет произве­дена, управление рано или поздно вернется к Задаче А, которая про­должит работу с того же места. Однако, так как переменная write_sector имеет теперь значение 10, данные Задачи А, предназна­чавшиеся для сектора номер 3, будут вместо этого записаны в сектор номер 10. Из приведенного примера видно, что ошибки, связанные с нереентерабельностью, трудно обнаружить, а последствия они могут вызвать самые катастрофические.

Лекция 3. Планирование и синхронизация задач

Важной частью любой ОС РВ является планировщик задач. Не­смотря на то, что в разных источниках он может называться по-разному (диспетчер задач, супервизор и т. п.), его функции остаются теми же: определить, какая из задач должна выполняться в системе в каждый конкретный момент времени. Самым простым методом пла­нирования, не требующим никакого специального ПО и планировщи­ка как такового, является использование циклического алгоритма стиле round robin:

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

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

2. Подпрограммы должны выполнять свою работу как можно быстрее, чтобы дать возможность работать следующей подпрограм­ме.

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

Можно отметить следующие преимущества циклического алго­ритма.

1. Простота использования и прозрачность для понимания.

2. Если исключить из рассмотрения прерывания, система полно­стью детерминирована. Задачи всегда вызываются в одной и той же последовательности, что позволяет достаточно просто произвести анализ «наихудшего случая» и вычислить максимальную задержку.

3. Минимальные размеры кода и данных. Кроме того, в отличие от алгоритмов с вытеснением, для всех задач необходим только один стек.

4. Отсутствуют ошибки, обусловленные «гонками».

К недостаткам циклического алгоритма можно отнести отсутст­вие приоритетности и очередей. К тому же задачи вызываются неза­висимо от того, должны ли они в данный момент что-либо делать или нет, а на прикладного программиста ложится максимальная ответст­венность за работоспособность системы.

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

инициативе не передаст управление другой задаче. По сути это про­должение идеологии round robin, и нет нужды объяснять, почему ал­горитм кооперативной многозадачности в чистом виде мало приме­няется в системах реального времени.

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

В общем случае алгоритмы планирования должны соответство­вать критериям оптимальности функционирования системы. Однако, если для систем «жесткого» реального времени такой критерий оче­виден: «ВСЕГДА и ВСЁ делать вовремя», то для систем «мягкого» реального времени это может быть, например, минимальное «макси­мальное запаздывание» или средневзвешенная своевременность за­вершения операций. В зависимости от критериев оптимальности мо­гут применяться алгоритмы планирования задач, отличные от рас­смотренных. Например, может оказаться, что планировщик должен анализировать момент выдачи критичных по времени управляющих воздействий и запускать на выполнение ту задачу, которая отвечает за ближайшие из них (алгоритм earliest deadline first, EDF).

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

Не стоит особо увлекаться приоритетами. Если система нор­мально работает, когда все задачи имеют одинаковый приоритет, то и слава Богу. Если нет, то можно присвоить высокий приоритет «кри­тической» задаче, и низкий приоритет всем остальным. Если у вас больше одной «критической» задачи, при недостаточном быстродей­ствии системы имеет смысл рассмотреть многопроцессорную кон­фигурацию или, отказавшись от ПО РВ, перейти к простому цикличе­скому алгоритму.

Как правило, разработчики стараются свести свою систему ре­ального времени к наиболее простым конфигурациям, характерным для систем «жесткого» реального времени, иногда даже в ущерб эф­фективности использования вычислительных ресурсов. Причина по­нятна: сложные динамические системы весьма трудно анализировать и отлаживать, поэтому лучше заплатить за более мощный процессор, чем иметь в будущем проблемы из-за непредвиденного поведения системы. В связи с этим большинство существующих систем реаль­ного времени представляют собой статические системы с фиксиро­ванными приоритетами. Часто в системе реализуется несколько «ре­жимов» работы, каждый из которых имеет свой набор выполняемых задач с заранее заданными приоритетами. Значительная часть особо ответственных систем по-прежнему реализуется без применения коммерческих ОС РВ вообще.

Источник

Информационный сайт