powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / задача реального времени - на 10миллисекунд
14 сообщений из 14, страница 1 из 1
задача реального времени - на 10миллисекунд
    #35832852
Пользователь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Требуется хотя бы на 10 миллисекунд управлять оборудованием (по USB) - чтобы не прерывалось другими задачами.
-------
- ДОС - не подходит - требуется ГУИ,
- вин3.11, вин95 - есть ли поддержка USB, и можно ли под это писать на современных языках (дельфи2007)?
- вин98 - вроде уже многозадачная?
- ХП - как сделать, чтобы программа не прерывалась другими задачами?
...
Рейтинг: 0 / 0
задача реального времени - на 10миллисекунд
    #35833088
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать задать для для процесса приоритет "Real Time" (код 256), но это можеть быть опасно для ОС в целом. И вообще, если нужно управлять железкой и канал управления требует высокого приоритета - то ставят специальный контроллер. Он и обеспечивает "безобрывность" управления.
...
Рейтинг: 0 / 0
задача реального времени - на 10миллисекунд
    #35833096
Фотография Frenzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я знаю существуют ОС реального времени. QNX например одна из самых известных. или линукс с реалтаймовым ядром.

_______________________________________
2pro4U
...
Рейтинг: 0 / 0
задача реального времени - на 10миллисекунд
    #35833111
Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Q
Гость
Гарантировать это может только приоритет, назначаемый ISR (физически не прерывается вообще, только ресетом) или DPC (после начала обработки -- не прерывается by design) в драйвере. А вообще, достаточно частый no-int на целых 10000 мкс (куда такое чудовищно большое время-то?) -- это верный способ разрушить некоторые компоненты системы.
...
Рейтинг: 0 / 0
задача реального времени - на 10миллисекунд
    #35833238
blaka zakata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отвечу на вопросы

Пользовательможно ли под это писать на современных языках (дельфи2007)?
можно. возможно, что работать не будет - это как напишете.

Пользователь- вин98 - вроде уже многозадачная?
вроде, да. но стоит уточнить на сайте майкрософт-точка-ком

Пользователь- ХП - как сделать, чтобы программа не прерывалась другими задачами?
хп - хранимая процедура - всегда прерывается. см. доклад томаса шнайте по этому вопросу.
...
Рейтинг: 0 / 0
задача реального времени - на 10миллисекунд
    #35833409
Ррррр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПользовательТребуется хотя бы на 10 миллисекунд управлять оборудованием (по USB) - чтобы не прерывалось другими задачами.

Используйте соответствующие задаче средства.

Пользователь
- ДОС - не подходит - требуется ГУИ,


ГУИ и на ДОС бывает. И таки вам шашечки или ехать, вы чего хотите: спецдевайс воткнуть в обычный комп и рулить им? Тогда вся обработка без прерываний должна быть в самом контролере. Вы ни под какой виндой не сделаете нормального реалтайма. У вас получится глюкалово, которое хотя бы изредка будет сбоить. И под линуксом без реалтаймовых патчей на ядро тоже. А с такими патчами - это уже не совсем линукс.

Вам уже сказали: или в контролер пихайте всю обработку или используйте специальные ОС.
...
Рейтинг: 0 / 0
задача реального времени - на 10миллисекунд
    #35833500
Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Q
Гость
Граждане! "Реалтаймовые патчи на йадро", "ОС реального времени", это, в общем-то НЕ БОЛЕЕ ЧЕМ подробно специфицированный механизм приоритетов и диспетчеризации потоков и прерываний, исключающий различные артефакты типа инверсии приоритетов, а также гарантированное (и тоже подробно специфицированное) максимальное время выполнения системных вызовов или подпрограмм первичной обработки внешних прерываний. Причем все эти требования относятся также и к любому прикладному софту, который в ней гоняют. В частности, разработчик софта самостоятельно обязан гарантировать отстутствие, например, клинчей и непредсказуемого роста диаметра графа зависимостей блокировок. :)

В виндовс НТ части этого дела нет, но и часть эта отсутствующая нужна довольно редко. Так что и в промПК с довольно жесткими требованиями РВ сегодня часто можно встретить НТ, причем даже 4й версии. :)

Написав СВОЮ программу, имеющую свойство "захватывать процессор монопольно на 10000 мкс" и запустив ее в т.н. ОС РВ мы получим что? Правильно, либо МНОГОзадачную систему, ничего общего с реальным временем не имеющую, либо ОДНОзадачную систему, которая, теоретически, может быть и РВ, но еще далеко не факт... :)
...
Рейтинг: 0 / 0
задача реального времени - на 10миллисекунд
    #35833892
Ррррр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Q
В виндовс НТ части этого дела нет, но и часть эта отсутствующая нужна довольно редко. Так что и в промПК с довольно жесткими требованиями РВ сегодня часто можно встретить НТ, причем даже 4й версии. :)

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

По сабжу я могу сказать, что "с помощью лома и какой-то матери" можно заставить под XP монополизировать ресурсы обработчиком на 10 мс. Только это будет заведомое глюкалово. Которое, иногда вешается, иногда почему-то прерывается, хотя не должно, но в целом вроде бы работает. А что допустим раз в сутки (это ещё неплохой результат) девайс надо перегружать, ну и хрен с ним думают совремённые глюкоделы.

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

На практике для низкоуровневой логики, управления чем-то таким в РВ используют встроенные решения (embedded), по сути специализированный комп-контролер на каком-нибудь ARM, смонтированный или на отдельной плате, вставляемой в десктопный комп или в самом устройстве, а с десктопного компа со всеми ГУИ делают высокоуровневое управление.
...
Рейтинг: 0 / 0
задача реального времени - на 10миллисекунд
    #35833937
Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Q
Гость
РррррQ
В виндовс НТ части этого дела нет, но и часть эта отсутствующая нужна довольно редко. Так что и в промПК с довольно жесткими требованиями РВ сегодня часто можно встретить НТ, причем даже 4й версии. :)

Вы бы поинтересовались, что там за NT
Я, так-то, интересовался, даже в руках держал ети железяки размером с толстую книжку с банальным интелпентиумом и интелинтегрейтедчипсет на борту. И, знаете, феньки типа "8 тиков таймера на квант против 2 тиков таймера на квант" не считаю фундаментальным различием систем. :)
---
По поводу технического решения "10 миллисекунд без прерываний" я, в общем-то согласен, о чем писал выше. :)
...
Рейтинг: 0 / 0
задача реального времени - на 10миллисекунд
    #35834139
Ррррр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Q
Я, так-то, интересовался, даже в руках держал ети железяки размером с толстую книжку с банальным интелпентиумом и интелинтегрейтедчипсет на борту. И, знаете, феньки типа "8 тиков таймера на квант против 2 тиков таймера на квант" не считаю фундаментальным различием систем. :)

Я о том, что NT там, насколько мне известно была с особым HAL.

По теме как пример РВ в драйверах, могу вспомнить про софт-модемы. Думаю там нужно 10 мс монополия. В предельном случае софт-модемы настолько софт, что даже DSP реализовываются драйверами. Вообще говоря, они работают, в том числе и под XP, поэтому сделать всё что хочет автор топика можно.

Но! Я однажды тестировал эти софт-модемы и могу сказать, что не видел буквально ни одного безглючного варианта. Везде какие-то приколы. То связь может разорваться при свопе на диске, то система раком становится иногда, то много чего, в общем, стабильности системе софт-можемы не добавляли никогда и сами хуже аппаратных по надёжности работы.
...
Рейтинг: 0 / 0
задача реального времени - на 10миллисекунд
    #35834267
Пользователь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РррррПо сабжу я могу сказать, что "с помощью лома и какой-то матери" можно заставить под XP монополизировать ресурсы обработчиком на 10 мс.
- Уважаемые, может подскажете рецепт, КАК ЭТО СДЕЛАТЬ ?
(где лежит лом и к какой матери нужно обратиться?)
...
Рейтинг: 0 / 0
задача реального времени - на 10миллисекунд
    #35834330
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше расскажи, что это за оборудование и почему ему нельзя 10 милисекунд подождать?
...
Рейтинг: 0 / 0
задача реального времени - на 10миллисекунд
    #35834411
Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Q
Гость
Ррррр... про софт-модемы. Думаю там нужно 10 мс монополия.
Софтмодем -- это приблизительно звуковая карта системы саундблястер или даже ковокс. Там нужна очень высокая частота прерываний, из-за которой, кстати, винду и переглючивает нафиг иногда.
...
Рейтинг: 0 / 0
задача реального времени - на 10миллисекунд
    #35834614
Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Q
Гость
Пользовательгде лежит лом и к какой матери нужно обратиться?
В драйвере он лежит. Называется interrupt service routine и delayed procedure call. (Не удивлюсь, что после реализации такого алгоритма управления оно будет лежать в руинах вместе с системой. :) )

Если требования нельзя изменить, то более-менее надежный вариант -- PCI-ный ПЛК + обвес в виде MAX3421E или аналогичного USB-хоста.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / задача реального времени - на 10миллисекунд
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]