 This structure allows programs to extend operating system services with low overhead. For example, with <i>SPIN</i> running on a 133 MHz Alpha, an application can handle and recover from a page fault in 29 microseconds. It takes 22 microseconds to create a new thread of control, execute it, terminate, and synchronize with its termination (fork/join).  A protected procedure call to another extension or to a kernel function takes .13 microseconds. A cross-machine RPC (application to application) over ethernet takes under 600 microseconds; over ATM (on really old adapters) it takes less than 450 microseconds. The same  operations under Mach or DEC UNIX take up to 30 times longer on the same hardware.  Time them yourself (or see our <a href="http://www.cs.washington.edu/research/projects/spin/www/external/bench/latest/index.html">benchmarks</a> page and save yourself the effort).  </ul>
