Сортировка "наобо рот"
- From
- Alexey Krasnov (2:5066/196.96)
- To
- Andrew Ezhguroff
- Date
- 2002-10-13T20:19:20Z
- Area
- RU.ALGORITHMS
Здравствуй.
Andrew Ezhguroff => Oleg Khovayko, 12 Октябрь 2002 года, 23:14:
AE> Например, лучше использовать не массив, а список (циклический?)
AE> актуальных очередей. При этом пустая очередь исключается из списка, а
AE> очередь, сообщение из которой отправляется, перемещается в конец
AE> списка. Очередь, ставшая непустой (в результате появления нового
AE> сообщения), добавляется также в конец списка. При исчерпании списка
AE> процесс приостанавливается до появления нового сообщения. Если время
AE> после отправки предыдущего сообщения из текущей очереди слишком мало,
AE> то процесс приостанавливается на достаточное время.
AE> Можно добавлять "новые" очереди не в конец, а сортировать по времени
AE> отправки последних сообщений из очередей (что немного увеличит
AE> накладные расходы, зато первым будет получать сообщение процесс,
AE> который ждет дольше всего).
Спасибо за идею, но тут тоже есть подводные камни. Данный алгоритм все равно может привести к ситуации, когда остается всего лишь одна очередь и попытается вывалить все сообщения из нее в одно устройство.
Сейчас стало понятно, что должен получиться оптимизационный алгоритм, переупорядочивающий очередь таким образом, чтобы свести к минимуму число специально выдерживаемых задержек. Трудно говорить о конкретных числах, но можно допустить, что:
- минимальное время между последовательными опросами одного и того же модуля одинаково для всех модулей;
- время передачи сообщения прямо пропорционально его длине;
- время подготовки передатчика к передаче нового сообщения пренебрежимо мало.
Всего хорошего.
-+- GoldED+/386 1.1.4.7. -- : Paul Van Dyk - Live At Home London (Essential Mix 04
---
* Origin: В лесу родилась ёлочка... в лесу и умрёт. (2:5066/196.96)