История изменений
Исправление router, (текущая версия) :
Какое время?
Текущее эмулируемое
Смотришь два события:
- очередной пакет пришёл
- очередной пакет из очереди обработан
смотришь, что раньше наступит
- пришёл пакет
очередь полностью забита? отбрасываешь
если нет, добавляешь в очередь
если очередь была пустая, текущее время заменяешь на время прибытия пакета
- пакет обработан
увеличиваешь текущее время на время обработки этого пакета
удаляешь его из очереди
да, если обработчик сразу забирает пакет из очереди (ещё в процессе обработки), можно считать как очередь длины N+1
Исправление router, :
Какое время?
Текущее эмулируемое
Смотришь два события:
- очередной пакет пришёл
- очередной пакет из очереди обработан
смотришь, что раньше наступит
- пришёл пакет
очередь полностью забита? отбрасываешь
если нет, добавляешь в очередь
если очередь была пустая, текущее время заменяешь на время прибытия пакета
- пакет обработан
увеличиваешь текущее время на время обработки этого пакета
удаляешь его из очереди
да, если обработчик сразу забирает пакет из очереди, можно считать как очередь длины N+1
Исходная версия router, :
Какое время?
Текущее эмулируемое
Смотришь два события:
- очередной пакет пришёл
- очередной пакет из очереди обработан
смотришь, что раньше наступит
- пришёл пакет
очередь полностью забита? отбрасываешь
если нет, добавляешь в очередь
если очередь была пустая, текущее время заменяешь на время прибытия пакета
- пакет обработан увеличиваешь текущее время на время обработки этого пакета
удаляешь его из очереди
да, если обработчик сразу забирает пакет из очереди, можно считать как очередь длины N+1