The experiments were conducted with FreeBSD 2.2.5 on a 166MHZ Intel Pentium PC with
64MB RAM and a 2.1GB Quantum Fireball hard disk. The applications we used are
described below and are summarized in Table 1.
Table 1: Characteristics of the applications.
Application
Description
Input data (MB)
cscope
C examination tool
C code (9)
glimpse
information retrieval tool
text files (50)
sort
UNIX sort utility
text files (4.5)
link
UNIX link editor
object files (2.5)
cpp
C preprocessor
C code (11)
gnuplot
GNU plotting utility
numeric data (8)
postgres1
relational DB system
two relations
postgres2
relational DB system
four relations
cscope
Cscope is an interactive C-source examination tool. It creates an index file named cscope.out
from C sources and answers interactive queries like searching C symbols or finding
specific functions or identifiers. We used cscope on kernel sources of roughly 9MB in size
and executed queries that search for five literals.
glimpse
Glimpse is a text information retrieval utility. It builds indexes for words and allows
fast searching. Text files of roughly 50MB in size were indexed resulting in about 5MB of
indexes. A search was done for lines that contain the keywords multithread, realtime,
DSM, continuous media, and diskspace.
sort
Sort is a utility that sorts lines of text files. A 4.5MB text file was used as input,
and this file was sorted numerically using the first field as the key.
link
Link is the UNIX link-editor. We used this application to build the FreeBSD kernel from
about 2.5MB of object files.
cpp
Cpp is the GNU C-compatible compiler preprocessor. The kernel source was used as input
with the size of header files and C-source files of about 1MB and 10MB, respectively.
gnuplot
Gnuplot is a command-line driven interactive plotting program. Using 8MB raw data, we
plotted three-dimensional plots four times with different points of view.
postgres1 and postgres2
Postgres is a relational database system from the University of California at Berkeley.
PostgresSQL version 6.2 and relations from a scaled-up Wisconsin benchmark such as
thoustup and tenthoustup were used. Postgres1 is a join between the hundredthoustup and
twohundredthoustup relations while postgres2 is a join among four relations, namely,
fivehundredup, twothoustup, twentythoustup, and twohundredthoustup. The sizes of
fivehundredup, twothoustup, twentythoustup, hundredthoustup, and twohundredthoustup are
approximately 50KB, 150KB, 1.5MB, 7.5MB, and 15MB, respectively.