Сортировка "наоборот"
- From
- Alexey Krasnov (2:5066/196.96)
- To
- All
- Date
- 2002-10-12T16:54:16Z
- Area
- RU.ALGORITHMS
Здравствуй.
Имеется такая задача. Некий сетевой драйвер мастера имеет очередь сообщений, которые необходимо разослать ряду устройств в сети и постоянно получает задания с верхнего уровня на отправку новых сообщений. Каждое сетевое устройство характеризуется уникальным однобайтовым сетевым адресом. Соответственно, каждое сообщение также содержит в себе адрес получателя. Необходимо так переупорядочить отправляемые сообщения, чтобы не встречалось два последовательно идущих сообщения к одному и тому же устройству, так как приняв сообщение, получатель сразу же принимается за его обработку и не в состоянии принять следующее (становится "глухим" на время обработки запроса), что воспринимается в итоге как ошибка.
Встает вопрос: как в сетевом драйвере реализовать алгоритм быстрого переупорядочивания спускаемых сверху запросов ? Что-то похоже на сортировку по адресу, но "наоборот", по принципу:
<на_адрес_0> <на_адрес_1> <на_адрес_2> <на_адрес_0> <на_адрес_1> ... и т.д.
При этом, если мы имеем несколько сообщений, предназначенных для одного и того же устройства, то отправляться они должны именно в том порядке, в котором спущены сверху.
Всего хорошего.
--- GoldED+/386 1.1.4.7. -- : Craig David - Walking Away
* Origin: Лучше быть черным, чем голубым. (2:5066/196.96)