Форум TRACE MODE: техническая поддержка
Тема закрыта / Topic Closed  Тема закрыта / Topic Closed
  
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 5 » Драйверы / Device Drivers » Система реального времени...

   
Автор / Author Тема / Topic: Система реального времени...
avalex
Junior Member / Новичок
Участник № / Member № 874


Icon 1 отправлено / posted      Профиль для / Profile for avalex           Редактировать/удалить сообщение / Edit/Delete Post 
При тестировании созданного нами драйвера типа КОНТР_2, реализующего нормальное управление передатчиком при связи через последовательный порт, мы столкнулись с одной проблемой.

Для корректного управления передатчиком необходимо, чтобы функция WriteMedia при выполнении ничем не прерывалась (время ее выполнения - не более 10 мс). Однако мы заметили, что ее периодически прерывает TraceMode, по всей видимости обращаясь к файлу подкачки, что особенно заметно в Windows 98. Это приводит к частым сбоям при обмене данными.

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

Сообщения / Posts 5 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post 
Трейс Моуд никогда не обращается к файлам подкачки.
Это делает сама ОС, работающая в многозадачном режиме, по своим алгоритмам.
В одно-процессорной среде только задачи с критическим приоритетом могут "не прерываться". Однако, механизм расстановки приоритетов, в основном, определяется системой, и обращаться с ним надо очень осторожно. В W'98 этот механизм вообще трудно доступен пользователю.
Следует писать программу так, чтобы она учитывала возможность системных прерываний, чтобы это было для нее некритично.

Необходимо обратить внимание еще на один аспект, уже имеющий отношение к Трейс Моуд. Согласно спецификации Трейс Моуд МРВ, вызвав функцию драйвера MEDIA, приостанавливает свой цикл обработки базы каналов и поддержки внешних интерфейсов до получения ответа от драйвера.
Задержка каждого ответа на 10 мс приведет к соответствующему удлинению цикла обработки базы каналов. Если таких обращений в цикле, например, 100, то цикл удлинится на 1 секунду, что может оказаться значимым для динамических параметров контроля и управления.
Корректный код драйвера должен это учитывать.

Сообщения / Posts 15118 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
avalex
Junior Member / Новичок
Участник № / Member № 874


Icon 1 отправлено / posted      Профиль для / Profile for avalex           Редактировать/удалить сообщение / Edit/Delete Post 
>>> Трейс Моуд никогда не обращается к файлам подкачки.
Естественно, сам TraceMode к файлу подкачки непосредственно не обращается. Однако он, как и любая программа, работает с памятью, а значит, может заставлять ОС обращаться лишний раз и к файлу подкачки.

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

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

>>>Задержка каждого ответа на 10 мс приведет к >>>соответствующему удлинению цикла обработки >>>базы каналов.
А как задержка может быть меньше, если передача кадра из более 12 байт данных на скорости 9600 bps занимает более 10 мс ?

Сообщения / Posts 5 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post 
1. Cам МРВ TraceMode, как и любая программа, заказывает ресурсы памяти у ОС, а уже она сама организует эти ресурсы, в том числе и выделение виртуальных ресурсов. Только ОС решает все вопросы распределения и управления памятью.

2. Так именно стремясь к минимизации динамических потерь, мы и вынуждены были выбрать тот механизм управления приемо-передатчиком, который Вы называте "некорректным". А Ваша попытка обойти это ограничение с одной стороны натыкается на то же ограничение, только с другой стороны.

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

Сообщения / Posts 15118 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

   Открыть тему / Open Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us

Rambler's Top100 Rambler's Top100



Powered by Infopop Corporation
UBB.classic™ 6.7.2