The single level store of Keykos is quite complete and few artifacts of the distinction between RAM and disk show thru. This is good in that application programs need keep long term state in only one form. It is bad when the kernel’s heuristics do poorly at allocating RAM to page frames form the disk or when recomputing data would be superior to writing and reading disk. This is one of the few cases where an application running on the bare hardware would have a fundamental advantage over running on Keykos.

A related problem is real-time. The current kernel postpones some kinds of work to the very last moment at which point it does a batch of work to efficiently prepare for the next span of time. These algorithms are efficient but roughly linear in the size of RAM. There are no mechanisms to keep such batches from occurring during critical periods. Only a little thought has been given to alleviating this problem.

See “Warts” in the section on keepers.


Abstraction faults:
  • The covert channel in the Bank.