|
|
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
Требуется хотя бы на 10 миллисекунд управлять оборудованием (по USB) - чтобы не прерывалось другими задачами. ------- - ДОС - не подходит - требуется ГУИ, - вин3.11, вин95 - есть ли поддержка USB, и можно ли под это писать на современных языках (дельфи2007)? - вин98 - вроде уже многозадачная? - ХП - как сделать, чтобы программа не прерывалась другими задачами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2009, 19:06:58 |
|
||
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
Можно попробовать задать для для процесса приоритет "Real Time" (код 256), но это можеть быть опасно для ОС в целом. И вообще, если нужно управлять железкой и канал управления требует высокого приоритета - то ставят специальный контроллер. Он и обеспечивает "безобрывность" управления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2009, 22:40:36 |
|
||
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
насколько я знаю существуют ОС реального времени. QNX например одна из самых известных. или линукс с реалтаймовым ядром. _______________________________________ 2pro4U ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2009, 22:52:36 |
|
||
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
Гарантировать это может только приоритет, назначаемый ISR (физически не прерывается вообще, только ресетом) или DPC (после начала обработки -- не прерывается by design) в драйвере. А вообще, достаточно частый no-int на целых 10000 мкс (куда такое чудовищно большое время-то?) -- это верный способ разрушить некоторые компоненты системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2009, 23:05:09 |
|
||
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
отвечу на вопросы Пользовательможно ли под это писать на современных языках (дельфи2007)? можно. возможно, что работать не будет - это как напишете. Пользователь- вин98 - вроде уже многозадачная? вроде, да. но стоит уточнить на сайте майкрософт-точка-ком Пользователь- ХП - как сделать, чтобы программа не прерывалась другими задачами? хп - хранимая процедура - всегда прерывается. см. доклад томаса шнайте по этому вопросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2009, 05:01:31 |
|
||
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
ПользовательТребуется хотя бы на 10 миллисекунд управлять оборудованием (по USB) - чтобы не прерывалось другими задачами. Используйте соответствующие задаче средства. Пользователь - ДОС - не подходит - требуется ГУИ, ГУИ и на ДОС бывает. И таки вам шашечки или ехать, вы чего хотите: спецдевайс воткнуть в обычный комп и рулить им? Тогда вся обработка без прерываний должна быть в самом контролере. Вы ни под какой виндой не сделаете нормального реалтайма. У вас получится глюкалово, которое хотя бы изредка будет сбоить. И под линуксом без реалтаймовых патчей на ядро тоже. А с такими патчами - это уже не совсем линукс. Вам уже сказали: или в контролер пихайте всю обработку или используйте специальные ОС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2009, 10:13:09 |
|
||
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
Граждане! "Реалтаймовые патчи на йадро", "ОС реального времени", это, в общем-то НЕ БОЛЕЕ ЧЕМ подробно специфицированный механизм приоритетов и диспетчеризации потоков и прерываний, исключающий различные артефакты типа инверсии приоритетов, а также гарантированное (и тоже подробно специфицированное) максимальное время выполнения системных вызовов или подпрограмм первичной обработки внешних прерываний. Причем все эти требования относятся также и к любому прикладному софту, который в ней гоняют. В частности, разработчик софта самостоятельно обязан гарантировать отстутствие, например, клинчей и непредсказуемого роста диаметра графа зависимостей блокировок. :) В виндовс НТ части этого дела нет, но и часть эта отсутствующая нужна довольно редко. Так что и в промПК с довольно жесткими требованиями РВ сегодня часто можно встретить НТ, причем даже 4й версии. :) Написав СВОЮ программу, имеющую свойство "захватывать процессор монопольно на 10000 мкс" и запустив ее в т.н. ОС РВ мы получим что? Правильно, либо МНОГОзадачную систему, ничего общего с реальным временем не имеющую, либо ОДНОзадачную систему, которая, теоретически, может быть и РВ, но еще далеко не факт... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2009, 10:50:44 |
|
||
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
Q В виндовс НТ части этого дела нет, но и часть эта отсутствующая нужна довольно редко. Так что и в промПК с довольно жесткими требованиями РВ сегодня часто можно встретить НТ, причем даже 4й версии. :) Вы бы поинтересовались, что там за NT и чем она отличается от обычной NT, а также о всех сопутствующих обстоятельствах. По сабжу я могу сказать, что "с помощью лома и какой-то матери" можно заставить под XP монополизировать ресурсы обработчиком на 10 мс. Только это будет заведомое глюкалово. Которое, иногда вешается, иногда почему-то прерывается, хотя не должно, но в целом вроде бы работает. А что допустим раз в сутки (это ещё неплохой результат) девайс надо перегружать, ну и хрен с ним думают совремённые глюкоделы. Cовремённый десктопный комп (серверный тем более) вообще мало годится для таких вещей с любой ОС, у него железо сейчас само по себе слишком умное и без всякой ОС. На практике для низкоуровневой логики, управления чем-то таким в РВ используют встроенные решения (embedded), по сути специализированный комп-контролер на каком-нибудь ARM, смонтированный или на отдельной плате, вставляемой в десктопный комп или в самом устройстве, а с десктопного компа со всеми ГУИ делают высокоуровневое управление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2009, 12:36:50 |
|
||
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
РррррQ В виндовс НТ части этого дела нет, но и часть эта отсутствующая нужна довольно редко. Так что и в промПК с довольно жесткими требованиями РВ сегодня часто можно встретить НТ, причем даже 4й версии. :) Вы бы поинтересовались, что там за NT Я, так-то, интересовался, даже в руках держал ети железяки размером с толстую книжку с банальным интелпентиумом и интелинтегрейтедчипсет на борту. И, знаете, феньки типа "8 тиков таймера на квант против 2 тиков таймера на квант" не считаю фундаментальным различием систем. :) --- По поводу технического решения "10 миллисекунд без прерываний" я, в общем-то согласен, о чем писал выше. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2009, 12:52:30 |
|
||
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
Q Я, так-то, интересовался, даже в руках держал ети железяки размером с толстую книжку с банальным интелпентиумом и интелинтегрейтедчипсет на борту. И, знаете, феньки типа "8 тиков таймера на квант против 2 тиков таймера на квант" не считаю фундаментальным различием систем. :) Я о том, что NT там, насколько мне известно была с особым HAL. По теме как пример РВ в драйверах, могу вспомнить про софт-модемы. Думаю там нужно 10 мс монополия. В предельном случае софт-модемы настолько софт, что даже DSP реализовываются драйверами. Вообще говоря, они работают, в том числе и под XP, поэтому сделать всё что хочет автор топика можно. Но! Я однажды тестировал эти софт-модемы и могу сказать, что не видел буквально ни одного безглючного варианта. Везде какие-то приколы. То связь может разорваться при свопе на диске, то система раком становится иногда, то много чего, в общем, стабильности системе софт-можемы не добавляли никогда и сами хуже аппаратных по надёжности работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2009, 13:57:49 |
|
||
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
РррррПо сабжу я могу сказать, что "с помощью лома и какой-то матери" можно заставить под XP монополизировать ресурсы обработчиком на 10 мс. - Уважаемые, может подскажете рецепт, КАК ЭТО СДЕЛАТЬ ? (где лежит лом и к какой матери нужно обратиться?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2009, 14:33:31 |
|
||
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
Лучше расскажи, что это за оборудование и почему ему нельзя 10 милисекунд подождать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2009, 14:53:04 |
|
||
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
Ррррр... про софт-модемы. Думаю там нужно 10 мс монополия. Софтмодем -- это приблизительно звуковая карта системы саундблястер или даже ковокс. Там нужна очень высокая частота прерываний, из-за которой, кстати, винду и переглючивает нафиг иногда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2009, 15:46:42 |
|
||
|
задача реального времени - на 10миллисекунд
|
|||
|---|---|---|---|
|
#18+
Пользовательгде лежит лом и к какой матери нужно обратиться? В драйвере он лежит. Называется interrupt service routine и delayed procedure call. (Не удивлюсь, что после реализации такого алгоритма управления оно будет лежать в руинах вместе с системой. :) ) Если требования нельзя изменить, то более-менее надежный вариант -- PCI-ный ПЛК + обвес в виде MAX3421E или аналогичного USB-хоста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2009, 16:44:18 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35833096&tid=1344649]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
194ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 502ms |

| 0 / 0 |
