|
Модераторы: ama_kid |
|
LeonidPr |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Мучает меня вот такой вопрос. Два раза прочитал эту статью и все равно многое не понял. Это не единственная статья, где я встречаю понятие "ядро реального времени", причем относительно к некоторому прикладному приложению. Если бы разговор шел о ядре реального времени ОСРВ, то тут вроде все понятно. Но вот в контексте прикладного (по отношению к ОС) программного обеспечения, мне этот термин не понятен.
Непонятно собственно вот что: Как обеспечивается жесткое реальное время в прикладном ПО? Какие требования при этом накладываются на архитектуру такого ПО? Та же SCADA. Она же ведет периодический опрос устройств. Если событие на объекте возникло в некоторый момент времени, SCADA узнает о нем только при следующем опросе и время это (между событием и опросом) недетерминированно. О каком же жестком реальном времени может идти речь? Или задача реального времени "крутится" внутри ПЛК? А SCADA занимается только взаимодействием с пользователем и архивацией. Есть много литературы и статей об операционных системах реального времени, их архитектуре, алгоритмах планирования и т.д. Можете посоветовать литературу по разработке ПО на базе ОСРВ? Добавлено через 14 минут и 17 секунд Сейчас обдумывал все, что здесь понаписал и вдруг мысль проскочила. Может говоря о ядре реального времени имеют в виду, что интервал опроса датчиков неизменен? Это сообщение отредактировал(а) LeonidPr - 30.3.2012, 18:23 --------------------
pkunzip.zip |
|||
|
||||
xvr |
|
||||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: нет Всего: 223 |
Никак. Все уверения в том, что 'супер пупер ПО', работающее в среде стандартной Windows (без своих драйверов) обеспечивает real-time за счет 'хитроумной организации приоритетов процессов, своего планировщика или еще чего то' не более, чем рекламный ход Да, можно запустить real-time приложение под Windows (и под Linux), но эти приложения требуют установки специально real-time подсистемы в ядро, и собственно само приложение крутится там же - в ядре (по крайней мере в RT-Linux это точно так) Таким образом вся RT часть работает совершенно независимо от основной системы и на голом железе, а все обращения в основную систему RT не являются
По статье очень сложно сказать, о чем они там думали. Даже в Windows можно сделать нечто, что с натяжкой можно назвать real-time системой. В Windows есть система приоритетов процессов и нитей. В том числе есть приоритет REALTIME. Нити с таким приоритетом может прервать только обработчик прерываний в ядре ОС. Гарантий RealTime это не дает, но выглядеть будет очень похоже |
||||
|
|||||
LeonidPr |
|
||||||
Бывалый Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Ну то, что на винде и линухе без примочек (RTX, RT-Linux, KURT) реальное время обеспечить нельзя это понятно. Я наверное не совсем точно вопрос сформулировал.
Да эта статья одна из многих, где о всяких таких вещах говорится, но всегда в общем без особой конкретики.
Ага, квазиреальное время получим. Так вот, вопрос наверное чуть по другому сформулирую. Пусть есть нижний уровень, обеспечивающий возможность создания ПО реального времени (например ОСРВ типа QNX). Тогда, какие есть рекомендации, может паттерны, требования к архитектуре такого ПО? Т.е. имея в руках ОСРВ, как создавать приложения реального времени? Например, вот здесь в разделе 2 есть такая фраза:
там конечно говорится о Linux, но насколько я понял, любая POSIX совместимая ОСРВ эту функцию предоставляет. То есть, получается, что поддержка реального времени заключается в том, что поток проснется точно по истечение времени, указанного в качестве аргумента clock_nanosleep() (если конечно не будет активного потока в более высоким приоритетом)? Это сообщение отредактировал(а) LeonidPr - 31.3.2012, 12:32 --------------------
pkunzip.zip |
||||||
|
|||||||
xvr |
|
||||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: нет Всего: 223 |
Они автоматом получатся (ну или почти автоматом) ОСРВ отличается от не РВ тем, что она гарантирует, что на любое событие (как внутри, так и снаружи ОС) его обработчик будет вызван не позже, чем через некоторое константное время. Вот тут неплохо написанно.
Ну собственно требование одно - ОС вам обеспечивает работу своих служб в РВ, а вот обеспечение работы пользовательской программы в РВ - это уже задача самой программы Это всего лишь один из аспектов РВ. И он один (сам по себе) еще не сделает из системы ОСРВ |
||||
|
|||||
LeonidPr |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Понятно. В общем, я так понимаю пора найти хорошую книжку по какой-нибудь ОСРВ и основательно её проштудировать:-) Спасибо за объяснения.
--------------------
pkunzip.zip |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | SCADA-системы и контроллеры стандарта IEC (МЭК) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |