A task may have up to eight different areas of main memory addressable in its local environment at any one time. These local memory areas are located using the following data structures: The Reinstate List, the MCP Environment Table, the User Environment Table and Memory Area Tables. These tables are described in more detail in later sections. However, the basic linkages between these tables are described briefly below.
Each task has an entry in a system array call the Reinstate List in which the processor and MCP maintain information about that task.
A task may execute instructions from MCP code modules or user program code. All of the code modules for the MCP have entries in the MCP Environment Table. Entry #0 of the reinstate list contains a pointer to the MCP environment table. All of the code modules for a user program have entries in the User Environment Table for that task. The reinstate list entry for each task contains a pointer to the user environment table for that task.
Each MCP or User Environment Table entry points to a Memory Area Table which describes the local addressing environment for that code. The first eight entries in the Memory Area Table contain the actual base/limit pairs for each memory area or indirect pointers to the actual base/limit pairs.
The smallest allocatable unit of memory is a Memory Area. It may be from 1,000 to 1,000,000 digits in size in increments of 1,000 digits.
The following Instructions or Procedures change the operating environment of the processor by resolving the first eight entries in the specified Memory Area Table and retaining the base and limit values for memory access protection. See Compatability Notes A.34.
|86||ATE||Alter Table Entry|
|93||BRV||Virtual Branch Reinstate|
|–||HCP||Hardware Call Procedure|
The processor has the ability to reference these eight memory areas as the local environment at any point in time (see Address Resolution). The processor also has the ability to reference non-local memory areas and provide memory access protection for such memory areas as are specified by the Convert I/O, Alter Table Entry, Move String, Compare String or the Hash String instructions.