next up previous contents
Next: Allocation blocks Up: ECS SYSTEM ARCHITECTURE Previous: Actions on operations

Class-codes

Class-codes were subprocess names. They were used in constructing operations and in sending interrupts to other processes. As we conceived the system, each user process would contain a representative from each of several classes of subprocesses (e.g., each user process would contain a representative of the disk/directory system). We wished to construct operations which would, for all processes, name a representative of the same class of subprocesses (e.g., the representative of the disk/directory system). One possibility would have been to name a subprocess by its position in the subprocess tree. This would have been undesirable for three reasons:
1)
It was necessary to prevent an arbitrary program from constructing an operation that called an arbitrary subprocess with arbitrary parameters. Hence a subprocess name to be used in constructing an operation must be protected.
2)
It was necessary to prevent arbitrary programs from sending interrupts to arbitrary subprocesses in other processes, again the subprocess name must be protected.
3)
It was conceivable that in different processes, subprocesses designed to be called by a given operation might appear at different positions in the tree, or might not exist at all.
A capability for a class code did not contain a pointer, but contained a representation of the name as its value part. Actions were available to create new class codes, to construct subprocesses at specified points in the tree (specified by class code of father), to construct operations which called subprocesses of specified class code and to send interrupts to subprocesses of specified class code.
next up previous contents
Next: Allocation blocks Up: ECS SYSTEM ARCHITECTURE Previous: Actions on operations
Paul McJones
1998-06-22