Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_SRC_3_19910112 - stanford/5-swskit/accounting.memos
There are 5 other files named accounting.memos in the archive. Click here to see a list.


+---------------------------+
!   !   !   !   !   !   !   !
! d ! i ! g ! i ! t ! a ! l !  i n t e r o f f i c e  m e m o r a n d u m
!   !   !   !   !   !   !   !
+---------------------------+

To:     TOPS-20 Monitor Memo List

CC:

                                        From:   Tom Porcher

                                        Dept:   LCG Software Engineering

                                        Loc:    MR1-2/E37   Ext: 231-6877

                                        Date:   28 February 1978

                                        PDM:    TCP-78-003-00-S

Subject:  TOPS-20 Accounting Shift Changes

This is a draft of a  specification  for  modifications  to  TOPS-20  to
provide the capability of changing accounting shifts.

If you have any more comments on this specification, please direct  them
to me as soon as possible.  
To: TOPS-20 Monitor Memo List                                     Page 2
Subject:  TOPS-20 Accounting Shift Changes


                           Specification for:

                    TOPS-20 Accounting Shift Changes








1.0  INTRODUCTION

This specification describes the changes to TOPS-20 Release 4  neccesary
to  allow  the  TOPS-20 system administrator to change the billing rates
for system usage at selected times during the day.



1.1  Functionality Desired

The new functionality which this project will bring is:

     1.  Provide a capability of closing the current accounting  session
         for  all  active jobs and starting a new accounting session for
         all these jobs.  This action  will  be  called  an  "accounting
         shift change".

     2.  Provide  a  method  by  which  the  system  administartor   can
         establish  times  during  the  day  when  there will be such an
         accounting shift change.  These  changes  may  be  selected  by
         day-of-week and time-of-day.

     3.  Dissociate a job's CPU time and console time from the data used
         for each accounting session.




1.2  Functionality Not Planned

     1.  No additional functionality will be added  to  the  down-stream
         billing programs to set accounting shift rates.

     2.  No capability to change the accounting  shifts  for  particular
         days of the year will be provided.

     3.  No  method  of  determining  session  runtime  by  any  TOPS-20
         commands will be provided.
To: TOPS-20 Monitor Memo List                                     Page 3
INTRODUCTION


1.3  Restrictions And Drawbacks

     1.  The user will notice that his accounting session time has  been
         reset at random intervals whenever an accounting shift changes.
         There will be  no  visible  indication  to  the  user  that  an
         accounting shift change has occurred (i.e.  no system message).

     2.  The user cannot determine exactly what his session runtime  and
         console time was during the last session.




2.0  SYSTEM ADMINISTATOR VISIBLE CHANGES

2.1  New CHKPNT Commands

2.1.1  CHANGE (ACCOUNTING SHIFT)  - This command will  cause  a  session
end  followed  by  a  session  start for every active job in the system.
This command is useful if the system administrator wants to bill  people
at a different rate in the immediate future.



2.2  New CONFIG Command File Commands

The following commands will be added to the commands  now  used  in  the
CONFIG  command  file.  These commands are read by the SETSPD program on
system initialization.



2.2.1  CHANGE (ACCOUNTING SHIFT AT) time (ON) days-of-week - This
command  will cause an accounting shift change to occur at the specified
time-of-day on the specified days-of-week.  Any  legal  format  for  the
time  will  be accepted (i.e.  1500, 15:00, 3:00PM, etc.).  Days-of-week
can be specified by either the names of the days (MONDAY, TUESDAY, etc.)
separated  by  commas,  or by one or more of the keywords ALL, WEEKENDS,
WEEKDAYS.  The default days-of-week is ALL.

Any number (up to the system limit of 100)  of  these  commands  may  be
specified in the file.

A typical set of commands would appear as follows:

        CHANGE 9:00 WEEKDAYS
        CHANGE 10:00 WEEKENDS,MONDAY
        CHANGE 12:00 TUESDAY,THURSDAY,SATURDAY
        CHANGE 17:00


Note that SETSPD cannot process guide words in commands.
To: TOPS-20 Monitor Memo List                                     Page 4
USER VISIBLE CHANGES


3.0  USER VISIBLE CHANGES

3.1  TOPS-20 Command Diffences

Due to the change in the information provided  by  the  TOPS-20  monitor
calls, the EXEC commands will change the information displayed.



3.1.1  SET ACCOUNT - This command will no longer indicate the time  used
on previous account, since it cannot be exactly correct.



3.1.2  LOGOUT, CTRL/T, INFORMATION (ABOUT) PROGRAM-STATUS - These
commands will now print the runtime and console time for the job and not
just for the last session.  This is the way it  was  in  Release  1  and
Release 2.



4.0  IMPLEMENTATION

4.1  New USAGE Monitor Call Functions

4.1.1  .USCAS - Change Accounting Shift - This function will perform  a
"session end" function on every active job.

There are no arguments to this function.

Job 0 will perform this function as part of  its  normal  processing  of
USAGE functions.



4.1.2  .USSAS - Set Accounting Shifts - This function  sets  the  times
when automatic accounting shift changes are to occur.

This function will take an address in AC2 as an argument.  This  address
is  the address of a table of accounting shift change times.  The format
of the table is as follows:

        <table header word>
        <table entry>
        ...
        <table entry>

The table header word contains the number of actual entries in the table
in  the  left half, and the maximum number of table entries in the right
half.  The right half is ignored, but is used in reading the table  back
using the .USRAS function.
To: TOPS-20 Monitor Memo List                                     Page 5
IMPLEMENTATION


Each table entry is one word in the following format:

        B0-B6   US%DOW  Days-of-week this entry is in effect.  Bit n  is
                        set  if this entry is in effect on day-of-week n
                        (0=Monday).
        B7-B17  Unused  Must be zero.
        B18-35  US%SSM  Time-of-day automatic shift change should occur.
                        Time is in seconds since midnight.


The table does not need to be ordered in any way.

The maximum number of entries is 100 decimal.  If more than 100  entries
are  specified,  the  error  mnemonic ARGX05 - "Argument block too long"
will be returned with an illegal instruction trap.

This table will be copied into the monitor's non-resident storage.   Job
0 will use this table to determine when the next accounting shift change
will occur.



4.1.3  .USRAS - Read Accounting Shifts - This function returns the times
of  the  automatic  accounting  shift  changes,  set  using  the  .USSAS
function.

The table address to return the times is specified in AC2.   The  format
of  the  table  is the same as in the .USSAS function.  The table header
word contains the actual number of entries in  the  table  in  the  left
half,  and  the  maximum number of entries in the right half.  The right
half (maximum size) must be  specified  by  the  user.   The  left  half
(actual size) is ignored and returned by the monitor.  The table entries
are filled in from the last time a .USSAS function  was  done.   If  the
table  is too small to hold all the entries, an illegal instruction trap
will occur and the error code ARGX04 - "Argument block too  small"  will
be returned.



4.2  New Job Information

This new information will be stored in the Job Storage  Block  (JSB)  of
each job.  This new information can be retreived using the GETJI monitor
call.



4.2.1  .JISRT - CPU time at start of session - This is  the  job's  CPU
time at the start of the last session.  To compute the CPU time for this
session, subtract this value from the current job CPU time (.JIRT).

This value will be stored in the new JOBSRT word of the JSB.
To: TOPS-20 Monitor Memo List                                     Page 6
IMPLEMENTATION


4.2.2  .JISCT - Console time at start of session - This  is  the  job's
console  time  at the start of the last session.  To compute the console
time for this session, subtract this value from the current job  console
time (which can be determined by the RUNTM monitor call).

This value will be stored in the new JOBSCT word of the JSB.



4.3  Other Monitor Changes

4.4  EXEC Changes

The EXEC changes are needed only to make use of the new information  now
available.  The changes in the command formats are described above.



4.4.1  SET ACCOUNT - Remove code to print time on previous account.



4.5  SETSPD Changes

4.5.1  CHANGE Command - This command must be added  to  SETSPD.   SETSPD
will  collect  all  the  CHANGE  commands  in a buffer, then perform the
.USSAS function of the USAGE call when the  CONFIG  file  is  completely
processed.



4.6  CHKPNT Changes

4.6.1  CHANGE Command - This command must be added to CHKPNT.   It  will
perform the .USCAS function of the USAGE call.



4.7  MONSYM Changes

4.7.1  New GETJI Functions - 



4.7.1.1  .JISRT - function 22



4.7.1.2  .JISCT - function 23
To: TOPS-20 Monitor Memo List                                     Page 7
IMPLEMENTATION


4.7.2  New USAGE Functions - 



4.7.2.1  .USCAS - function 10



4.7.2.2  .USSAS - function 11



4.7.2.3  .USRAS - function 12



[End of ASC.MEM]


+---------------+
! d i g i t a l !   I N T E R O F F I C E  M E M O R A N D U M
+---------------+
TO:  TOPS-20 Monitor Memo List
                                       DATE:  29-Nov-78
                                       FROM:  Sharon Konen
                                       DEPT:  DEC20 S. E. Dept.
                                       LOC:   MR1-2/E37
                                       EXT:   5270
DISTRIBUTED:                           FILE:  STRACC.MEM
REVIEWED:                              PDM  : SAK-78-003-00
SUBJ:  STRUCTURE ACCOUNTING



1.0 INTRODUCTION

This memo is intended to  describe  the  changes  necessary  to
TOPS-20 to provide the capability for disk accounting.

2.0 DEFINITION OF DISK ACCOUNTING

Accounting is done only on regulated structures.   A  structure
is  regulated  unless  it is the primary system structure (i.e.
PS:)  or  the  MSTR  JSYS  has  been  executed   to   make   it
nonregulated.

The accounting is based on the wall clock time  from  the  time
the  user  issues  an  SMOUNT  to  the issuing of an SDISMOUNT.
Because of this method, certain restrictions must be placed  on
the user:

        1.  Before  ACCESSing  or  CONNECTing  to  a  regulated
            structure,  the  user must issue an SMOUNT for that
            structure.

        2.  Before referencing a file on a regulated  structure
            or  doing  a  directory on that structure, the user
            must SMOUNT it.

        3.  The user must have ended any ACCESS or CONNECT to a
            regulated structure before SDISMOUNTing it.

        4.  All JFNs for a regulated structure must be released
            before the user can SDISMOUNT that structure.
To: TOPS-20 Monitor Memo List                            Page 2
Subj: STRUCTURE ACCOUNTING


3.0 IMPLEMENTATION

3.1 JSYS Changes

        1.  GTJFN, GNJFN, and ACCES  check  whether  or  not  a
            structure  is  regulated,  and if so, require prior
            increment of the mount  count  on  that  structure.
            The  error  message  resulting  from not previously
            incrementing the mount count is

              STRX09 - Prior structure mount required

        2.  The .MSIMC function of the MSTR JSYS  to  increment
            the  mount  count  sends  an  IPCF  message  to the
            Mountable Device Allocator to indicate  a  user  is
            using  the structure.  In addition, a word has been
            added to the argument block, in case  a  user  must
            increment  the  mount  count  for another job.  The
            format is 

                Word Symbol Meaning

                  1   .MSJOB   Number of job whose mount  count
                               is   to  be  incremented.   This
                               requires   WHEEL   or   OPERATOR
                               capability enabled.

        3.  The .MSDMC function of MSTR to decrement the  mount
            count continues to send an IPCF message to the MDA.
            If the structure is regulated, it  also  checks  to
            see  if  the  user  has  any  assigned  JFNs on the
            structure, is CONNECTed to it, or is ACCESSing  it.
            If  any  of  these conditions is true, the function
            fails with one of the following messages:

              MSTX36 - Illegal while JFNs assigned

                or

              MSTX37 - Illegal while accessing or connected  to
              structure

        4.  An additional state can be changed with the  .MSSSS
            function of MSTR.  It is

              B6(MS%NRS)        Structure is nonregulated.

        5.  The .MSGSS function of MSTR reports another status.
            It is

              B6(MS%NRS)        Structure is nonregulated.

        6.  The USAGE JSYS now allows the file structure  mount
            entry  as  defined  in  the DECSYSTEM-20 USAGE File
To: TOPS-20 Monitor Memo List                            Page 3
Subj: STRUCTURE ACCOUNTING


            Specification.

3.2 JSYS Additions

Three new functions have been added to MSTR.  All three require
WHEEL or OPERATOR privilege.  The first two are associated with
fork-only incrementing of the mount count.  These were added to
allow  BATCON,  LPTSPL, etc.  to run under job 0.  Each program
independently mounts and dismounts structures.   Without  these
functions  the  GALAXY  programs  could vye with each other for
control of the structure.  For example, BATCON might  increment
the count, LPTSPL would see it already done and start using the
structure.  When finished with the structure, BATCON decrements
the count.  This leaves LPTSPL hanging without the structure.  
NOTE:  When either  a  job  or  fork  mount  is  possible,  the
job-wide  mount  is  preferred,  as  the fork mount incurs more
overhead.

        1.  Incrementing the Mount Count for the Fork - .MSICF

            A fork indicates it is actively using  a  structure
            by  this  function.  In most situations, the .MSIMC
            function which mounts the structure for the  entire
            job  is  preferred,  rather than just for the fork.
            This  function  involves  more  overhead  for   the
            function  than  for  the  .MSIMC function.  The job
            receives  an  error  if  the  structure  is   being
            dismounted.  The format of the argument block is

                Word  Symbol   Meaning

                  0   .MSDEV   Pointer    to    ASCIZ    string
                               containing   the  alias  of  the
                               structure, or device  designator
                               of the structure.

            The possible errors  are  the  same  as  those  for
            .MSIMC.

        2.  Decrementing the Mount Count for the Fork - .MSDCF

            This function indicates the given structure  is  no
            longer  being  used  by  this fork.  (However, if a
            job-wide increment has been done,  the  fork  still
            may  access  the  structure.)  The  format  of  the
            argument block is as follows:

                Word  Symbol   Meaning

                  0   .MSDEV   Pointer    to    ASCIZ    string
                               containing   the  alias  of  the
                               structure, or device  designator
                               of the structure.
To: TOPS-20 Monitor Memo List                            Page 4
Subj: STRUCTURE ACCOUNTING


            The possible errors for this function are the  same
            as those for the .MSDMC function.

        3.  Receive Interrupt when Disk comes On-line - .MSOFL

            This  function  specifies  who  is  to  receive  an
            iterrupt when a disk comes on-line.  It is provided
            for the device allocator in order  to  control  the
            disks  and inform the operator of structure status.
            Only one process on the  system  will  receive  the
            interrupts.  The format is as follows:

                Word  Symbol   Meaning
                  0   .MSCHN   Place this process on a software
                               interrupt channel.  An interrupt
                               is then generated  when  a  disk
                               comes  on-line.   If the channel
                               number  is  given  as  -1,   the
                               process   is  removed  from  its
                               current channel.

        4.  Ignore Increment Check - .MSIIC

            This function allows a process to use  a  regulated
            structure without previously incrementing the mount
            count.  There is no argument  block.   Entries  are
            made  to  the  accounting  file  only  on structure
            decrements.  Therefore, this function  will  enable
            bypassing  of the accounting.  The following errors
            are possible from this function:

            MSTRX2:   WHEEL or OPERATOR capability required

3.3 EXEC Changes

        1.  The SET STRUCTURE command can take two more
            descriptors:

            REGULATED - Prior incrementing of the mount count
                      is required to use the structure, and
                      accounting is done.  This is the default,
                      unless it is the primary system
                      structure, i.e.  PS:.

            NONREGULATED  - Accounting is not done for this
                      structure, and prior incrementing of the
                      mount count is not required to use this
                      structure.

        2.  The INFORMATION STRUCTURE command can report
            whether a structure is regulated or nonregulated.

3.4 GALAXY Changes
To: TOPS-20 Monitor Memo List                            Page 5
Subj: STRUCTURE ACCOUNTING


        1.  BATCON must issue a request to increment the mount
            count for a structure for the user at LOGIN time,
            if the structure is regulated.

        2.  LPTSPL must issue a request to increment the mount
            count, if the file is on a regulated structure.

        3.  SPROUT must issue the same request if it is copying
            a file to a regulated structure.

        4.  FTP20 must increment the mount count if copying a
            file to/from a regulated structure.

3.5 MTCON Interface

(Note!  MTCON will be given a more appropriate name in the
future.) MTCON will assume the disk functions of OPLEAS.  In
addition, MTCON will insert disk and tape records into the
USAGE accounting file.

        1.  The OPLEAS command file will be renamed to
            MTCON.CMD and have the additional commands:

                FOREIGN (STRUCTURE) structure name
                NONREGULATED (STRUCTURE) structure name
                REGULATED (STRUCTURE) structure name

            The commands may be doubled, for example:

                NONREGULATED DOMESTIC SNARK

            The last new command is DEFAULT.  This sets up the
            default status of all structures to be mounted that
            are not listed in the command file.  The arguments
            to the command are the previously mentioned
            commands.  In order for an installation to allow
            usage of a structure without requiring the SMOUNT
            command, the following line would be inserted into
            the command file:

                DEFAULT NONREGULATED

            The arguments to the DEFAULT command may be
            doubled, also.  For example,

                DEFAULT DOMESTIC NONREGULATED

        2.  MTCON will notify the operator of a mount request
            with the message format:

                15:18:49  <1>     --MOUNT STRUCTURE--
                                Mount SHR: (alias SHR:)
                                User KONEN, Job 17, Line 232
To: TOPS-20 Monitor Memo List                            Page 6
Subj: STRUCTURE ACCOUNTING


            The operator will either place the pack on the
            drive, or respond with a refusal message, where the
            first word must be 'REFUSE'.

            OPR>RESPOND 1 REFUSE NO PACK FOUND WITH THAT NAME

            The user will see one of the two following
            messages:

                [Structure SHR: mounted]
            
            or
            
                Mount refused by operator
                Reason given by operator: NO PACK FOUND WITH THAT NAME
            
            The operator may ask for a status report of the
            disks:

            Status of Disk Units:
            
            Mounted?   Type  Channel  Drive  Structure name      Logical unit
            --------   ----  -------  -----  --------------      ------------
            YES        RP06        0      6  SNARK:              0 (1 of 1)
            YES        RP06        0      7  MISC:               0 (1 of 1)
            YES        RP06        1      0  PS:                 0 (1 of 2)
            YES        RP06        1      1  EIBEN:              0 (1 of 1)
            YES        RP04        1      2  QWERTY:             0 (1 of 1)
            YES        RP06        2      3  PS:                 1 (2 of 2)
            NO         RP06        2      4  Off-line
            YES        RP06        2      5  LANG:               0 (1 of 1)
            YES        RP06        5      1  REL3:               0 (1 of 1)