Rules collected in Professor Miller's section of 537: Operating Systems.

These are the things that he repeats or prefaces with "This is important." I made up the rule names, though.
All of these rules applied in the context of the lectures given; no guarantee that they'll apply for you.

Bart's rule of interrupts
The only way to enter an operating system is through an interrupt.
Bart's rule of binary semaphores
In general, initialize a binary semaphore to one.
Bart's rule of condition variables
Condition variables are always private.
Bart's rule of power
Two mechanisms have equal power if you can implement one in terms of the other and vice versa.
Corollary
Power is expressiveness or logical equivalence. Power is not efficiency.
Bart's rule of brain cell usage
You only have so many brain cells. You may choose to kill them by thinking, or you may choose to kill them with beer.
Corollary
Minimize the number of brain cells spent thinking.
Bart's rule of pointcast
Don't run pointcast.
Bart's rule of scheduling
If you can't tell, it doesn't matter.
Bart's rule of critical sections
Never block in a critical section.
Bart's rule of global variables
Global variables are evil.
Corollary A
Never, never use public data members.
Corollary B
If you think you need public data members, see Corollary A
Bart's rule of pages
Variable length things are evil.
Bart's rule of virtual memory
There is no relationship between the size of the virtual address and the size of the physical address.
Bart's rule of trace files
A trace file never gives you the information you want.


Send me a new rule:

caitlin at cs dot wisc dot edu
This site last updated July 1998.