COR - Create Partition From GEN This program has three functions: 1) Allocate core 2) Create a partition 3) Return previously allocated core. Command line : >COR [[:] ] [:] [/switch] where: 1 to 6 character alphanumeric partition name Is the amount of core requested in 100(octal) byte blocks. Can be COM, DEV, or TASK. The default is COM. /switch -LI is used to suppress any messages. The default is LI. Additional qualifiers for COR are: OPERATION, INFORMATIONAL_MESSAGES, ERROR_MESSAGES, SPC_TASK 2 OPERATION Operation: When core is to be allocated, the top of the GEN partition is lowered to obtain the requested memory. No tasks can be running at the top of GEN at this time so if there are tasks present an attempt will be made to checkpoint them. If the tasks will not checkpoint, a task called ...SPC will be spawned to try and shuffle the tasks down in memory. If both attempts fail to free up the required core, COR exits with an error. When a new partition is to be created, the same actions are taken as listed above except that once the core is obtained MCR is spawned to set up the partition control block. Also before an attempt is made to reduce the GEN partition, a search is made above GEN for vacant holes that may have been created. The search is made from the top of memory down and is a first fit algorithm. When run without specifying a partition name and length, or just a length of core to be allocated, any unused core at the top of GEN is returned. Checks are made when lowering GEN's upper boundary so that it is not smaller than the largest installed task, and if GEN goes below 32KW and the extend task directive is allowed, then the max extend size is set to what ever GEN size is. This is reset to 32KW when GEN is increased to 32KW or greater. 2 INFORMATIONAL_MESSAGES Informational Messages: The following messages are indications of successful completion of COR: 1. Partition created aaa:bbb:ccc:ddd (exit status = 1) where: aaa is partition name bbb is partition base in 100(octal) byte blocks ccc is partition length in 100(octal) byte blocks ddd is type of partition (COM, DEV, or TASK) 2. GEN partition boundary is reset (exit status = 1) Indicates any unused core has been added back to GEN. 3. Core allocated aaa:bbb (exit status = 1) where: aaa is partition base in 100(octal) byte blocks bbb is partition length in 100(octal) byte blocks 2 ERROR_MESSAGES Error Messages : The following is a list of possible error messages and their meanings: 1. Alignment error (exit status = 100.) An attempt has been made to allocate more memory than GEN contains. 2. Duplicate partition name (exit status = 101.) A GEN subpartition already exits with the specified name. 3. Partition GEN is not a system controlled partition. (exit status = 102.) 4. Partition GEN is not in system or is not a main partition (exit status = 100.) 5. Core not allocated, partition GEN unable to contain task xxxxxx (exit status = 104.) Task xxxxxx is an installed task that requires more memory than would be availble if GEN's upper boundary is lowered to provide the requested memory. Note that this is just the largest task installed for GEN and there may be other task that are also too large. 6. Syntax error (exit status = 105.) 7. Too many characters in partition name (exit status = 106.) 8. Unable to allocate core because of subpartitions (exit status = 107.) There is a task in GEN partition above the proposed new lower GEN boundary that prevents it from being lowered and the requested memory allocated. 9. Unsuccessful set command (exit status = 108.) The command passed to MCR to set up the partition has failed. 2 SPC_TASK SPC - Core Shuffler Utility The SPC utility is a modification of DEC's shuffler program (SHF...). The shuffler only runs when RSX11M wants it to and only shuffles core until a hole is made that is large enough to hold the task waiting for memory. For SPC, the shuffler was modified such that it will do as much shuffling as possible before it exits. Occasionally, especially on a big memory machine, a task will migrate to the top of memory if it is a task that runs for a long time or continuously (COT... for example). If COR is run in this case, it may not be able to cause that task to checkpoint and therefore can not create a partition. COR then spawns SPC in an attempt to shuffle memory and free up memory in the top of GEN so that a partition can be created. SPC can be run at manually at any time with the command: >SPC