Re: Сортировка "наоборот"
- From
- Sergey Andrianov (2:5020/1507.400)
- To
- Alexey Krasnov
- Date
- 2002-10-15T22:08:42Z
- Area
- RU.ALGORITHMS
Здравствуй, Alexey!
Однажды 12-Oct-02 в 16:54 Alexey Krasnov (2:5066/196.96)
написал All по поводу
-=- Сортировка "наоборот" -=-
AK> Имеется такая задача. Некий сетевой драйвер мастера имеет очередь
AK> сообщений, которые необходимо разослать ряду устройств в сети и постоянно
AK> получает задания с верхнего уровня на отправку новых сообщений. Kаждое
AK> сетевое устройство характеризуется уникальным однобайтовым сетевым
AK> адресом. Соответственно, каждое сообщение также содержит в себе адрес
AK> получателя. Необходимо так переупорядочить отправляемые сообщения, чтобы
AK> не встречалось два последовательно идущих сообщения к одному и тому же
AK> устройству, так как приняв сообщение, получатель сразу же принимается за
AK> его обработку и не в состоянии принять следующее (становится "глухим" на
AK> время обработки запроса), что воспринимается в итоге как ошибка.
AK> Встает вопрос: как в сетевом драйвере реализовать алгоритм быстрого
AK> переупорядочивания спускаемых сверху запросов ? Что-то похоже на
AK> сортировку по адресу, но "наоборот", по принципу:
<эр_рфЁхё_0>> <на_адрес_1> <на_адрес_2> <на_адрес_0> <на_адрес_1> ... и т.д.
AK> При этом, если мы имеем несколько сообщений, предназначенных для одного и
AK> того же устройства, то отправляться они должны именно в том порядке, в
AK> котором спущены сверху.
Например, разбивать входную очередь сообщений на отдельные очереди для каждого, а затем циклически перебирать очереди, извлекая из них сообщения и раздавая адресатам. Минус - в самом загруженном канале будут самые большие задержки.
Вообще-то для того, чтобы дать более или менее точный ответ, нужна дополнительная информация. Например, если приемнику необходимо время на обработку сообщения, то нужно знать его величину в единицах времени отправки одного сообщения. И опять же, нужно ли гарантировать пересылку сообщения в течение определенного времени, если нет, то предложенный алгоритм должен устроить.
До свидания, в 22:03 MSK
Sergey
---
* Origin: Sergiev Posad (2:5020/1507.400)