next up previous contents
Next: A.5 Microbenchmark for the Up: A. Benchmark Methodologies Previous: A.3 Microbenchmark for the   Contents

A.4 Microbenchmark for the $ O_{s}$ and $ g_{s}$ Parameters

Modern network interfaces are operated in the form of queue structures, e.g. the transmission queue, receive queue, free-buffer queue, etc. These queues are simple circular FIFO queues, and operate under the consumer-producer relationship. Consider if the producer generates requests faster than the service rate of the consumer, outstanding requests will be queuing up in the queue; due to the limitation of the queuing space, eventually the system will become full. Upon the full condition, the system will only accept new request if and only if the consumer has serviced the "head" request to make way for the newcomer. Therefore, if there were unlimited supply of requests, the system gradually reaches an equilibrium state, in which the producer is forced to work at the same rate at that of the servicing rate. The algorithm used by this microbenchmark is shown in Algorithm 7.
\begin{algorithm}
% latex2html id marker 6677\par\caption{
{\small \protect\( ...
...umnwidth}{!}{\includegraphics{figures/appdx/alg_Osgs.eps}}\par }
\end{algorithm}

For the above microbenchmark to be effective, the prerequisite condition is $ g_{s}>O_{s} $, without that we could only report of the $ O_{s}$ value. When the number of messages sent (msg_no) is less than queue size (Tx) of the transmit ring, the observed per message handling time becomes our $ O_{s}$ value for this message size. On the other hand, when the number of messages sent is greater than Tx, the observed equilibrium handling time becomes our $ g_{s}$ value for this message size.


next up previous contents
Next: A.5 Microbenchmark for the Up: A. Benchmark Methodologies Previous: A.3 Microbenchmark for the   Contents