CSEP551 -- Programming Assignment #1
Out: Thursday October 1st, 2009
Due: Thursday October 8th, before class
For this assignment, you will write and run a few microbenchmarks on
the operating system of your choice.
Here's what you should measure; precisely how you design and
implement your measurement code is up to you.
A few things to keep in mind:
- System call overhead. (Note: your answer will be in the microsecond time
- The latency to perform a disk seek.
(Note: your answer will be in the millisecond time scale.)
- The sequential read bandwidth of one disk.
(Note: your answer will be in the tens of megabytes per second
- BONUS: Context switch overhead.
- The department has Linux
machines available for your use. Keep in mind these machines are used by
many people, so if you use those machines for your measurements you will need
to make sure your measurement results aren't affected by somebody else's
program. I recommend you find a time when no other programs are
running, and run your benchmarks then. If this turns out not to be
possible (i.e., all the machines are busy all the time), then find another
machine to run them on.
- If you take measurements on a shared machine, you need to make sure your
benchmarks aren't too disruptive. Your benchmarks have no need to
run for more than a few seconds or tens of seconds...
What to turn in
Please email Steve and Colin the following:
A very short description of your measurement design -- no more than
a handful of sentences on each measurement.
A very brief description of any limitations to the approach you chose. Again,
no more than a handful of sentences.
Your source code (in whatever language or scripting environment you