Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Архив
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Действительно ли вам нужна ОС реального времени?

 Ответить Ответить Страница  <1 89101112>
Автор
Сообщение
evgen Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 178
Свойства публикации Свойства публикации   Ответить, цитируя автора - evgen Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Действительно ли вам нужна ОС реального времени?
    Опубликовано: 12 Декабрь 2003 22:38
Первоначально опубликовано Olej

К вопросу о тесте на инверсию приоритетов, его исходных кодах, результатах выполнения и т.д. - я, наконец, поимел возможность выложить всё это с подробными описаниями:
http://qnxclub.net/modules.php?name=Content&pa=showpage&pid=5

на вскидку - маловато статистики, после старта нитки делается пауза в 1 мс при том что тик в XP - 10мс, сам старт занимает предположительно не меньше тика.

Первоначально опубликовано Olej


Что ещё может быть интересно? Это то, что в 1-м результате (диспетчирование потоков равного приоритета) наблюдается некоторые «перебои»… Аналогичное тестирование для QNX давало отчётливую периодическую последовательность:

Чем вызваны "перебои" вызваны перебои - очевидно. Отсутсвием семафоров. Различное поведение под вин и qnx может быть вызвано как разной величиной тика, так и, возможно, разной производительностью/параметрами компиляторами.
Т.е. претензия - не указан компилятор/опции компилятора и системный квант времени.
SY,
EK
Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Декабрь 2003 00:39
Первоначально опубликовано evgen


ну так возмите исходники [f]open и посмотрите чего они зовут от системы и подумайте на досуге над отличием костюмчика от того, на чем оно сидит.

В том-то и прелесть стандартизации, в том числе и POSIX, что при её наличии вот это "посмотрите" - это занятие только для извращенцев, для мазохистов (но это мы уже об другом предмете): в диаметрально противоположных OS - клиент-серверной микроядерной QNX и моноядерной Linux - мне нет нужды смотреть как выполнен fopen - он работает одинаково, и именно так, как стандарт предписывает, для чего он (стандарт) только и нужен!
Наверх
evgen Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 178
Свойства публикации Свойства публикации   Ответить, цитируя автора - evgen Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Декабрь 2003 01:19
Первоначально опубликовано Olej

Первоначально опубликовано evgen


ну так возмите исходники [f]open и посмотрите чего они зовут от системы и подумайте на досуге над отличием костюмчика от того, на чем оно сидит.

В том-то и прелесть стандартизации, в том числе и POSIX, что при её наличии вот это "посмотрите" - это занятие только для извращенцев, для мазохистов (но это мы уже об другом предмете): в диаметрально противоположных OS - клиент-серверной микроядерной QNX и моноядерной Linux - мне нет нужды смотреть как выполнен fopen - он работает одинаково, и именно так, как стандарт предписывает, для чего он (стандарт) только и нужен!

дя?
во-первых, даже для fopen'а есть ньюансы типа "r"/"rb", во-вторых, для функций типа read/write ньюансов еще больше, в частности, когда хендл - не файловый хендл, а, например, на самом деле сокет.
Что уж говорить о такой тонкой материи, как временные зависимости в работе ниток/семафоров
SY,
EK
Наверх
evgen Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 178
Свойства публикации Свойства публикации   Ответить, цитируя автора - evgen Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Декабрь 2003 01:31
Первоначально опубликовано Olej

Первоначально опубликовано evgen


ну так возмите исходники [f]open и посмотрите чего они зовут от системы и подумайте на досуге над отличием костюмчика от того, на чем оно сидит.

В том-то и прелесть стандартизации, в том числе и POSIX, что при её наличии вот это "посмотрите" - это занятие только для извращенцев, для мазохистов

кстати о птичках. реализации большого количества стандартных функций для однониточной и многониточных программ отличаются, что приводит к достаточно большому числу "тонких эффектов". Один из них, например, приводит к различию скорости выполнения, по моим наблюдениям - до двух раз.
SY,
EK
Наверх
Draggan Смотреть выпадающим
Участник
Участник


Присоединился: 31 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 52
Свойства публикации Свойства публикации   Ответить, цитируя автора - Draggan Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 14 Декабрь 2003 13:10
Первоначально опубликовано evgen


Чем вызваны "перебои" вызваны перебои - очевидно. Отсутсвием семафоров. Различное поведение под вин и qnx может быть вызвано как разной величиной тика, так и, возможно, разной производительностью/параметрами компиляторами.

Не совсем верно, семафоры, мютексы и др. объекты синхронизации использовать тут нельзя, июо это сразу приведет к серии переключений контекстов, а надо бы как и в QNX варианте использовать атомарные функции или критические секции...
Вы не пробовали запустить такой тест по OS/2?
У меня тоже появился вопрос, я модифицировал виндовый вариант программы, добавив критичесские секции на обращение к буферу и запретил динамическое присваивание приоритетов, но тем неменее при увеличении длительности цикла получил такой вариант:
c:\work\Visual C++ Projects\InvW\Debug>invw +6
inverse test, Win32 API, vers.1.03
repeating number = 5000000, lock on mutex
111101111110000000002222222222

c:\work\Visual C++ Projects\InvW\Debug>invw +7
inverse test, Win32 API, vers.1.03
repeating number = 50000000, lock on mutex
101111111110000000002222222222

попадание управления к 0 потоку, когда "властвует" 1 уже говорит о плохой предсказуемости win32 в смысле диспетчеризации...
Draggan
Kharkov, QNX Seminars
Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 15 Декабрь 2003 16:57
Первоначально опубликовано Draggan

попадание управления к 0 потоку, когда "властвует" 1 уже говорит о плохой предсказуемости win32 в смысле диспетчеризации...


Здесь не совсем уместно говорить о "плохой предсказуемости" - каждое переключение контекста есть строго детерминированный процесс, и всё поведение их совокупности тоже детерминировано... Но составляющих этого процесса становится так много (может процесс свопинга или мапирования страниц включиться, динамическое поведение приоритетов, обработчики прерываний: таймер, например...) - что, помните, я говорил о "сложности" системы - её поведение под стать предсказывать уже статистически.
Наверх
Draggan Смотреть выпадающим
Участник
Участник


Присоединился: 31 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 52
Свойства публикации Свойства публикации   Ответить, цитируя автора - Draggan Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 16 Декабрь 2003 10:32
При чем тут переключение контекста? Когда я даю одному потоку приоритет выше чем другому, я имею в виду, что он должен выполняться первым, если конечно может. Вопрос, в том, что останавливает поток 1, даже на краткий период времени, потому, как даже один цикл потока 0 не проходит...
Это означает, что у активного потока возможны задержки выполнения, причем причины этих задержек далеко не очевидны...
Именно об этом я говорил как о плохой предсказуемости, хотя это все уже известно и до меня...

Да, сделал я объект синхронизации под виндой, убирающий инверсию приоритетов путем наследования. Ознакомиться можно здесь:
http://qnxclub.net/modules.php?name=Forums&file=viewtopic&p=72#72
Сразу скажу код несколько сыроватый, но работает. Принимаю любые замечания и рекомендации.
:)
Draggan
Kharkov, QNX Seminars
Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 16 Декабрь 2003 14:24
Первоначально опубликовано Draggan

При чем тут переключение контекста? Когда я даю одному потоку приоритет выше чем другому, я имею в виду, что он должен выполняться первым, если конечно может. Вопрос, в том, что останавливает поток 1, даже на краткий период времени, потому, как даже один цикл потока 0 не проходит...

При том, что даже при выполнении 1-го потока высокого приоритета - у вас всё равно будут переключения контекста: по timeslice, например, когда планировщик должен пересмотреть списки готовых к выполнению потоков... и принять решение вернуть управление тому же, который только что прервали.
Наверх
evgen Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 178
Свойства публикации Свойства публикации   Ответить, цитируя автора - evgen Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Декабрь 2003 03:31
Первоначально опубликовано Olej

К вопросу о тесте на инверсию приоритетов, его исходных кодах, результатах выполнения и т.д. - я, наконец, поимел возможность выложить всё это с подробными описаниями:
http://qnxclub.net/modules.php?name=Content&pa=showpage&pid=5

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

new spam received: дЮММШЕ ДКЪ ЮЙРХБХГЮЖХХ ЮЙЙЮСМРЮ
....
Spam detection software, running on the system "ocean.is47.com", has
identified this incoming email as possible spam. The original message
has been attached to this so you can view it (if it isn't spam) or block
similar future email. If you have any questions, see
the administrator of that system for details.

============
оригинально - да ?
Далее идет

"Добро пожаловать Харьковский"

и ссылка для активизации....при тыканьи в которую получаем
"Пользователя с такими данными в нашей базе данных не найдено."
мда... а сама статья стала совсем нечитабельна, вероятно
<meta NAME="GENERATOR" CONTENT="OpenOffice.org 1.1.0 (Win32)">
с русской языкой несколько не в ладах

SY,
EK
Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Декабрь 2003 12:01
Первоначально опубликовано evgen


гм...анонимусов вы там запретили..

Не запретили, а запретили им писать в обсуждение - согласитесь, это 2 большие разницы, нет?

Первоначально опубликовано evgen


при попытке зарегистрироваться приходит сообщение

Я надеюсь, что это - артефакт ;) - там действительно шла перманентная реконструкция, вы, наверное "под неё" попали :(.

Первоначально опубликовано evgen


мда... а сама статья стала совсем нечитабельна, вероятно
<meta NAME="GENERATOR" CONTENT="OpenOffice.org 1.1.0 (Win32)">
с русской языкой несколько не в ладах

Виноват, это я недосмотрел - текст в UNICODE, его можно читать, подстроив браузер - но это, конечно - лишнее. В 1-2 дня текст будет заменен на нормальный (в кодировке 1251). Но там рядом - лежит PDF текст - это дубликаты, вы можете легко прочитать его.

Но за время с написания статьи:

- она вызвала обсуждения и уточнения, которые, как мне кажется - интереснее самой статьи;

- во след, по итогам и нашего с вами обсуждения, написана и выложена новая статья (на сегодня, пока - только PDF):
http://qnxclub.net/modules.php?name=Forums&file=viewtopic&t=16

- и ещё одна, на ту же тематику, нашего коллеги из Монреаля - у меня на руках для чтения и рецензии, будет выложена после минимальной (грамматической) правки в 5-7 дней.
Наверх
 Ответить Ответить Страница  <1 89101112>

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz