|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Oleg Khovayko 2:5020/400 13 Oct 2002 00:12:12 To : Andrew Ezhguroff Subject : Re: Сортировка "наобо рот" -------------------------------------------------------------------------------- Andrew Ezhguroff wrote: > OK> В этому случае твой алгоритм > > Это не алгоритм, а голая идея. :-) После данного пояснения - понял и проникся. До этого же данный тезис был неочевиден. > Это означает, что все сообщения предназначены единственному устройству. Hу дык! И я о том же. > Подобную ситуацию придется решать в любом алгоритме Да. > и простейшее лобовое > решение - для каждой очереди хранить время отправки последнего сообщения. Можно и так делать... > Еще раз - это не алгоритм, а идея. Понятно, что запускать подобный > бесконечный цикл в драйвере абсурдно. Вот и я о том же. Что твое предыдущее письмо никак нельзя рассматривать как руководство к действию. А рассматривать его можно разве что как рассуждения общего порядка - "куда думать". > > Hапример, лучше использовать не массив, а список (циклический?) > актуальных > очередей. И обслуживать в нем две специальные ситуации "список пуст" и "в списке только одина очередь". > При этом пустая очередь исключается из списка И куда девается? Отдается на растерзание free() или переносится в некий другой "список свободных очередей"? Оба способа имеют свои недостатки... , а очередь, > сообщение из которой отправляется, перемещается в конец списка. Ага. То есть циклический список должен быть двусвязным? или же для каждой перестановки его придется несколько раз обежать по кругу. > Очередь, > ставшая непустой (в результате появления нового сообщения) Еще потенциальная проблема - если рассматриваемый нами процесс-диспетчер очередь лихо будет переставлять очередь по памяти, то он сможет создать проблемы для процесса-наполнителя очереди. Можно, конечно, решить проблему путем хранения в кольцевом списке указателей на очереди, но тогда будут проблемы с удалением/созданием очередей в контексте процесса-наполнителя. , добавляется > также в конец списка. При исчерпании списка процесс приостанавливается до > появления нового сообщения. Если время после отправки предыдущего сообщения > из текущей очереди слишком мало, то процесс приостанавливается на > достаточное время. Hо несмотря на описаные выше тонкие места, это уже похоже на работающий вариант. Теперь осталось только закодировать. ;) Я вот свой "почти рабочий" вариант, с одной единственной очередью, привел. Есть против него возражения? > ИМХО, скорее всего будет с точностью до наоборот - в RT-11SJ драйверы > работать может и будут, а вот приложение - нет. Да, здесь ты прав. Поправка принимается. > А вот в "нормальной" > многозадачной среде если бесконечный цикл работает не на максимальном > приоритете, то система все же будет функционировать. Да. Hо хреново. . --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/12696ab551f8c.html, оценка из 5, голосов 10
|