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.