Context Switch Performance

What are the performance implications of separating instances by memory map? Keykos switches maps when code in one object sends a message to code in another object. The non-MP IBM 370 kernel requires about 120 instructions to do the job. Some of those instructions are privileged instructions with complex semantics involving the cache and TLB. The Motorola RISC 88K required about clock 500 cycles. The 88K had less hardware to support complex TLB tasks in switching contexts. Some of that time was taken executing MP code without a 370 counterpart. Both machines cached memory by real addresses and both had TLBs that held entries from multiple spaces.

In a data base benchmark on a one mip Amdahl machine, Keykos performed about 16,000 context switches per second. That machine does nearly two million simple instructions per second. That time includes execution of problem mode instructions. The benchmark ran much faster than traditional data base systems on the same hardware despite the fact that we spent that majority of the time in privileged mode switching contexts. Architecture counts.

See also: Jonathan S. Shapiro, David J. Farber, and Jonathan M. Smith. State Caching in the EROS Kernel — Implementing Efficient Orthogonal Persistence in a Pure Capability System.