Модераторы: ama_kid
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как обеспечивается реальное время? 
:(
    Опции темы
LeonidPr
Дата 30.3.2012, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2012
Где: г. Чебоксары

Репутация: нет
Всего: 1



Мучает меня вот такой вопрос. Два раза прочитал эту статью и все равно многое не понял. Это не единственная статья, где я встречаю понятие "ядро реального времени", причем относительно к некоторому прикладному приложению. Если бы разговор шел о ядре реального времени ОСРВ, то тут вроде все понятно. Но вот в контексте прикладного (по отношению к ОС) программного обеспечения, мне этот термин не понятен.
Непонятно собственно вот что:
Как обеспечивается жесткое реальное время в прикладном ПО? Какие требования при этом накладываются на архитектуру такого ПО? Та же SCADA. Она же ведет периодический опрос устройств. Если событие на объекте возникло в некоторый момент времени, SCADA узнает о нем только при следующем опросе и время это (между событием и опросом) недетерминированно. О каком же жестком реальном времени может идти речь? Или задача реального времени "крутится" внутри ПЛК? А SCADA занимается только взаимодействием с пользователем  и архивацией.
Есть много литературы и статей об операционных системах реального времени, их архитектуре, алгоритмах планирования и т.д. Можете посоветовать литературу по разработке ПО на базе ОСРВ?

Добавлено через 14 минут и 17 секунд
Сейчас обдумывал все, что здесь понаписал и вдруг мысль проскочила. Может говоря о ядре реального времени имеют в виду, что интервал опроса датчиков неизменен?

Это сообщение отредактировал(а) LeonidPr - 30.3.2012, 18:23
--------------------
pkunzip.zip
PM MAIL   Вверх
xvr
Дата 31.3.2012, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: нет
Всего: 223



Цитата(LeonidPr @  30.3.2012,  18:19 Найти цитируемый пост)
Непонятно собственно вот что:
Как обеспечивается жесткое реальное время в прикладном ПО? 

Никак. Все уверения в том, что 'супер пупер ПО', работающее в среде стандартной Windows (без своих драйверов) обеспечивает real-time за счет 'хитроумной организации приоритетов процессов, своего планировщика или еще чего то' не более, чем рекламный ход  smile 
Да, можно запустить real-time приложение под Windows (и под Linux), но эти приложения требуют установки специально real-time подсистемы в ядро, и собственно само приложение крутится там же - в ядре (по крайней мере в RT-Linux это точно так)
Таким образом вся RT часть работает совершенно независимо от основной системы и на голом железе, а все обращения в основную систему RT не являются

Цитата(LeonidPr @  30.3.2012,  18:19 Найти цитируемый пост)
Сейчас обдумывал все, что здесь понаписал и вдруг мысль проскочила. Может говоря о ядре реального времени имеют в виду, что интервал опроса датчиков неизменен?

По статье очень сложно сказать, о чем они там думали. Даже в Windows можно сделать нечто, что с натяжкой можно назвать real-time системой. В Windows есть система приоритетов процессов и нитей. В том числе есть приоритет REALTIME. Нити с таким приоритетом может прервать только обработчик прерываний в ядре ОС. Гарантий RealTime это не дает, но выглядеть будет очень похоже  smile 
PM MAIL   Вверх
LeonidPr
Дата 31.3.2012, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2012
Где: г. Чебоксары

Репутация: нет
Всего: 1



Ну то, что на винде и линухе без примочек (RTX, RT-Linux, KURT) реальное время обеспечить нельзя это понятно. Я наверное не совсем точно вопрос сформулировал.
Цитата

По статье очень сложно сказать, о чем они там думали.

Да эта статья одна из многих, где о всяких таких вещах говорится, но всегда в общем без особой конкретики.
Цитата

выглядеть будет очень похоже

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

Во все задачи периодического опроса добавлена поддержка режима жесткого реального времени на основе POSIX функции clock_nanosleep()

там конечно говорится о Linux, но насколько я понял, любая POSIX совместимая ОСРВ эту функцию предоставляет. То есть, получается, что поддержка реального времени заключается в том, что поток проснется точно по истечение времени, указанного в качестве аргумента clock_nanosleep() (если конечно не будет активного потока в более высоким приоритетом)?

Это сообщение отредактировал(а) LeonidPr - 31.3.2012, 12:32
--------------------
pkunzip.zip
PM MAIL   Вверх
xvr
Дата 31.3.2012, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: нет
Всего: 223



Цитата(LeonidPr @  31.3.2012,  12:30 Найти цитируемый пост)
Т.е. имея в руках ОСРВ, как создавать приложения реального времени?

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


Цитата(LeonidPr @  31.3.2012,  12:30 Найти цитируемый пост)
Тогда, какие есть рекомендации, может паттерны, требования к архитектуре такого ПО?

Ну собственно требование одно - ОС вам обеспечивает работу своих служб в РВ, а вот обеспечение работы пользовательской программы в РВ - это уже задача самой программы

Цитата(LeonidPr @  31.3.2012,  12:30 Найти цитируемый пост)
 То есть, получается, что поддержка реального времени заключается в том, что поток проснется точно по истечение времени, указанного в качестве аргумента clock_nanosleep() (если конечно не будет активного потока в более высоким приоритетом)?

Это всего лишь один из аспектов РВ. И он один (сам по себе) еще не сделает из системы ОСРВ

PM MAIL   Вверх
LeonidPr
Дата 31.3.2012, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2012
Где: г. Чебоксары

Репутация: нет
Всего: 1



Понятно. В общем, я так понимаю пора найти хорошую книжку по какой-нибудь ОСРВ и основательно её проштудировать:-) Спасибо за объяснения.
--------------------
pkunzip.zip
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | SCADA-системы и контроллеры стандарта IEC (МЭК) | Следующая тема »


 




[ Время генерации скрипта: 0.1223 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.