Сортировка "наоборот"
- From
- Vovanius Uryvaeff (2:5020/175.2)
- To
- Alexey Krasnov
- Date
- 2002-10-16T18:54:08Z
- Area
- RU.ALGORITHMS
From: "Vovanius Uryvaeff" <micro-s@vniiofi.ru>
Sun Oct 13 2002 20:04, Alexey Krasnov wrote to Andrew Ezhguroff:
AK> Здравствуй.
AK> Andrew Ezhguroff => Alexey Krasnov, 12 Октябрь 2002 года, 19:21:
AE>> Как я понимаю, устройств достаточно мало (раз байтовый адрес)? Ну так
AE>> организуй отдельные очереди для каждого устройства:
AE>> loop {бесконечный цикл}
AE>> for текущая_очередь:=1 to максимальный_номер_очереди do
AE>> if не_пусто(очереди[текущая_очередь]) then
AE>> отправка_сообщения(очереди[текущая_очередь])
AE>> end if
AE>> end for
AE>> end loop
AK> Хм. При явном превосходстве количества сообщений в одной из очередей
AK> желательно конечно обращаться к ней почаще, перемешивая ее с сообщениями
AK> из других. То есть, опять-таки встает вопрос выбора последовательности
AK> опросов с наиболее "гладким" распределением.
Для каждой очереди можно посчитать коэффициент K=N*T,
где N - число сообщений в очереди, T - время на обработку пакета в денной
очереди, и посылать каждый раз из той очереди, кде К окажется наибольшим, и
устройство свободно.
(если T одинаково, то его можно считать 1)
Тогда в случае
1 1 1 1 1 2 3 4 5
пакеты будут посланы в порядке
1 2 1 3 1 4 1 5 1
а если, например T1 = 1, T2 = 2 и почередь
1 1 1 1 1 1 2 2 2 2 2 2
2 1 1 2 1 1 2 1 1 2 пауза 2 пауза 2
сможете найти пример, в котором такая стратегия неоптимальна?
EMail send to vovanius<yxo>xakep.ru, please.
--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)