$PAGE                                                                   00001000
<<***********************************************************>>         00002000
<<***********************************************************>>         00003000
<<*******************                   *********************>>         00004000
<<*******************       JCUT        *********************>>         00005000
<<*******************                   *********************>>         00006000
<<***********************************************************>>         00007000
<<***********************************************************>>         00008000
<<                                                           >>         00009000
<< There are 3 forms in the JCUT:                            >>         00010000
<<                                                           >>         00011000
<<   A) Header - Starts at word 0 and uses 6 Words           >>         00012000
<<       0) Number of Real Entries                           >>         00013000
<<       1) Entry Size (3 Words)                             >>         00014000
<<       2) Free Head Pointer                                >>         00015000
<<       3) Pointer to Last Entry                            >>         00016000
<<       4) Unused                                           >>         00017000
<<       5) Unused                                           >>         00018000
<<                                                           >>         00019000
<<   B) In Use Entry                                         >>         00020000
<<       1st Word - Time Limit (Seconds)                     >>         00021000
<<       2nd & 3rd Words - Time Count (msec)                 >>         00022000
<<                                                           >>         00023000
<<   C) Free Entry                                           >>         00024000
<<       1st Word - Pointer to next free entry (0=end list)  >>         00025000
<<       2nd Word - Unused                                   >>         00026000
<<       3rd Word - Unused                                   >>         00027000
<<                                                           >>         00028000
<< The JCUT is used to keep track of the time used by all    >>         00029000
<< Jobs and Sessions that are CPU limited.  Every time a     >>         00030000
<< process finishes, the JCUT CPU count is updated in the    >>         00031000
<< procedure EXPIRE of the module MORGUE.  It then checks to >>         00032000
<< see if the Job or Session limit has been reached and, if  >>         00033000
<< so, the Job/Session will terminate.                       >>         00034000
<<                                                           >>         00035000
<<                JCUT - Job Cutoff Table                    >>         00036000
<<           (1 Entry for each CPU Limited Job)              >>         00037000
<<              ****** CORE RESIDENT ******                  >>         00038000
<<                                                           >>         00039000
<< SYSGLOB BASE = DB+11(%13)                                 >>         00040000
<< DST = 36(%44)                                             >>         00041000
<< SIR = 14(%16)                                             >>         00042000
<< SYSGLOB +%117 = Default CPU Time Limit for Jobs           >>         00043000
<<                                                           >>         00044000
<<          |--------------------------------------| ======= >>         00045000
<<         0| Number of Real Entries               |    |    >>         00046000
<<          |--------------------------------------|    |    >>         00047000
<<         1| Entry Size (3)                       |    |    >>         00048000
<<          |--------------------------------------|    |    >>         00049000
<<   ------2| Free Head                            | Header  >>         00050000
<<   |      |--------------------------------------| Entry   >>         00051000
<<   |  ---3| Pointer to Last Entry (0)            | 6 Words >>         00052000
<<   |  |   |--------------------------------------|    |    >>         00053000
<<   |  |  4| Unused                               |    |    >>         00054000
<<   |  |   |--------------------------------------|    |    >>         00055000
<<   |  |  5| Unused                               |    |    >>         00056000
<<   |  |   |--------------------------------------| ======= >>         00057000
<<   |  |   ~                                      ~         >>         00058000
<<   |  |   ~                                      ~         >>         00059000
<<   |  |   |--------------------------------------|\        >>         00060000
<<   |  |   | JCUTCPUL - Time Limit (seconds)      | |       >>         00061000
<<   |  |   |--------------------------------------| |In Use >>         00062000
<<   |  |   | JCUTCPUC - Time Count (msec) 2 Words | |Entry  >>         00063000
<<   |  |   |                                      | |       >>         00064000
<<   |  |   |--------------------------------------|/        >>         00065000
<<   |  |   ~                                      ~         >>         00066000
<<   |  |   ~                                      ~         >>         00067000
<<   |  |   |--------------------------------------|\        >>         00068000
<<   ---|-->| Pointer to Next Free Entry (0=end)   | |       >>         00069000
<<      |   |--------------------------------------| |Free   >>         00070000
<<      |   | Unused                               | |Entry  >>         00071000
<<      |   |--------------------------------------| |       >>         00072000
<<      |   | Unused                               | |       >>         00073000
<<      |   |--------------------------------------|/        >>         00074000
<<      |   ~                                      ~         >>         00075000
<<      |   ~                                      ~         >>         00076000
<<      |   |--------------------------------------|\        >>         00077000
<<      --->|                                      | |       >>         00078000
<<          |--------------------------------------| |       >>         00079000
<<          |                                      | |Last   >>         00080000
<<          |--------------------------------------| |Entry  >>         00081000
<<          |                                      | |       >>         00082000
<<          |--------------------------------------|/        >>         00083000
<<                                                           >>         00084000
<< To access an entry in the JCUT, declare a variable        >>         00085000
<< JCUTINDEX and set it equal to the entry number to be      >>         00086000
<< accessed.  To get the CPU Count, declare a 2 word integer >>         00087000
<< array to read JCUTCPUL1 and JCUTCPUL2 into. This array    >>         00088000
<< should be equivalenced to a DOUBLE INTEGER which can then >>         00089000
<< be used to check the time count.                          >>         00090000
<<***********************************************************>>         00091000
<<*************** Start of Declares *************************>>         00092000
<<***********************************************************>>         00093000
INTEGER POINTER JCUT = 11;                                              00094000
EQUATE                                                                  00095000
  JCUTHEADSIZE =   6,                                                   00096000
  JCUTDST      =  36,                                                   00097000
  JCUTSIR      =  14;                                                   00098000
DEFINE << HEADER >>                                                     00099000
  JCUTMAXENT    = JCUT(0)#,                                             00100000
  JCUTENTSIZE   = JCUT(1)#,                                             00101000
  JCUTFREEHEAD  = JCUT(2)#,                                             00102000
  JCUTLASTENT   = JCUT(3)#;                                             00103000
DEFINE << ENTRY >>                                                      00104000
  JCUTCPUL       = JCUT(JCUTINDEX)#,                                    00105000
  JCUTCPUC1      = JCUT(JCUTINDEX+1)#,                                  00106000
  JCUTCPUC2      = JCUT(JCUTINDEX+2)#;                                  00107000
<<***********************************************************>>         00108000
<<***********************************************************>>         00109000
<<*******************                  **********************>>         00110000
<<*******************   End of JCUT    **********************>>         00111000
<<*******************                  **********************>>         00112000
<<***********************************************************>>         00113000
<<***********************************************************>>         00114000
