Circular buffers in FFPF have two indices to indicate the current read
and write positions. These are known as
and
,
respectively. Whenever
catches up with
, the buffer is full. The way in which the
system handles this case is defined by the buffer management system
(BMS). The modular design of FFPF allows different BMSs to be
used. The administrator chooses the BMS at startup time. The optimal
choice depends on the mix of applications that will be executed and
their relative importance. Currently, two BMSs have been
defined. The first is known as `slow reader preference' and is
commonly used in existing systems. The second is known as `fast reader
preference' and is a novel way of ensuring that fast readers are not
slowed down by tardy applications.