Resource managers
– Consumables. This resource manager handles consumable resources, such
as CPU time, wall-clock time, number of child agents, maximum depth of
the parent-child hierarchy, and number of migrations. Unlike other resources
(such as the file system), access control is not an issue, only allocation.
Furthermore, although there is an infinite supply of these resources, each
agent should be limited to a finite consumption to prevent system overload.
Since access to these resources is either implicit (as with CPU time) or takes
place through the generic agent core (migration), enforcement actually takes
place in the core, with the language-specific security module simply setting
the new limits after the manager returns its decision. In addition, in contrast
with the other builtin resources, the agent starts with a small allowance and
must explicitly ask the manager for more.
Limits on these resources are enforced across groups of mutually trusting
machines. When making its decision, the consumables manager considers
the amount of the resource used by the agent on other machines within the
group.8
Notably