Note: data at message pointer contains a list of argument names followed by their values. ex: var1 8 var2 16. this data area was acquired from the memory manager, who ensures that nobody else can access it.
MEMORY MANAGER:
Definition: a resource controller which controls all allocation, deallocation, reading, and writing of memory blocks. You are assigned an access key when you request a block, and must supply that key in order to read or write the block. You can pass the key to another object if that object needs to access the block.
Responsibilities: allocate block, deallocate block, write bytes to block, read bytes from block, move data from one block to another block, garbage collection
offset=5,myvariable='ericvalue') - returns value in address 'eric'+5 assuming
proper validations: block access key correct, offset within range.
If validations fail, sends message to Error Handler, which will decide whether to abend program, log the error, or ignore the error, or notify the user that a system problem occurred and give her the option to continue (with possible unpredictable conseqences) or ignore it. Default course of action should be to take a dump of the object, preserve the instruction pointer, abend the task gracefully, log the violation, sound an alarm in the support center, and beep the programmer responsible for maintenance of the module. of course, it may not be possible to find the cause of the problem - but a clue should be found in the last message received by the object, or the system trace table which would be searched to find all previous messages sent to that object. We are also assuming that every program in the system is conforming to this memory management protocol, and that it has become a standard which is enforced by a quality control group that is effective in banning programs which don't follow standards from creeping into the sacred production environment.
INTERRUPT MANAGER:
Definition: a resource controller which detects all hardware interrupts and
sends messages to the appropriate interrupt handlers.