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.