$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
