The standard invocation of a requestor’s key on a factory takes two space bank arguments. The first must be “prompt”. Non factory creators usually require two banks as well. What is this all about?

First I note that all official banks implemented in Keykos to date are actually prompt and call sites for the requestor’s key usually pass the same bank key in the two argument positions.

The first bank key is used by factory code and if the bank were not prompt the factory might hang and become unresponsive to users who share the factory. Prompt means that requests for pages or nodes will promptly either return the requested material, or respond that none is available. The factory code verifies that this bank is indeed prompt. A non prompt bank, upon exhaustion, invokes a keeper that may be in a position to free some space whereupon the original request may be granted.

The second bank is used by the untrusted program specific to the factory instance. It may be non prompt since the factory has by that point become available to subsequent factory users.

It is still a bit of a mystery what prompt means. A space bank transformer invocation determines that a proffered key refers indeed to an official space bank and also whether that bank is prompt. A non prompt bank would arise when a designed but unimplemented order on a bank would produce a new sub-bank with a keeper key to invoke in lieu of denial of space. That order would include the keeper key in the invocation.

In the case of the space bank then, promptness means that the bank will respond to a space request without invoking any code outside the space bank and the bank’s TCB. Headway may thus be ensured.

Some techniques, similar to caching, accumulate data to improve performance of some task that can still be done without the data. Such data may thus be sacrificed by a bank keeper to make space for necessary data.