Trailing-Edge
-
PDP-10 Archives
-
dec-10-omona-u-mc9
-
scdset.rno
There is 1 other file named scdset.rno in the archive. Click here to see a list.
.LC.FLAG CAPITALIZE
.CENTER
<SCDSET\\: ^A ^SCHEDULER ^PARAMETER ^SETTING ^PROGRAM
.CENTER
FOR USE BY THE ^SYSTEM ^ADMINISTRATOR
.SKIP 3
SCDSET.DOC -- for version 2 of SCDSET
^JUNE 1976
Copyright (C) 1975, 1976
Digital Equipment Corporation, Maynard, Mass.
This software is furnished under a license for use only on a single
computer system and may be copied only with the inclusion of the above
copyright notice. This software, or any other copies thereof, may not
be provided or otherwise made available to any other person except for
use on such system and to one who agrees to these license terms.
Title to and ownership of the software shall at all times remain in
DEC.
The information in this software is subject to change without notice
and should not be construed as a commitment by Digital Equipment
Corporation.
DEC assumes no responsibility for the use or reliability of its
software on equipment which is not supplied by DEC.
.PAGE
.HL 1<OVERVIEW
.SKIP 2
.HL 2 <PURPOSE
.SKIP 1
^THE PURPOSE OF THIS PROGRAM IS TO ALLOW THE ^SYSTEM ^ADMINISTRATOR TO EASILY USE THE
^^SCHED.\\#MONITOR CALL AS IMPLEMENTED IN THE ^^DEC\\SYSTEM-10 6.02 MONITOR.
(^THIS MONITOR CALL ALLOWS A PRIVILEGED USER TO SET SYSTEM USAGE QUOTAS
AS WELL AS ADJUST SCHEDULER PARAMETERS.) ^THE PROGRAM IS WRITTEN
SO THAT THE ^SYSTEM ^ADMINISTRATOR CAN EXERCISE THE MONITOR CALL EASILY WITHOUT HAVING TO
KNOW HOW IT WAS IMPLEMENTED. ^IN ADDITION ^^SCDSET\\:
.LEFT MARGIN 5
.INDENT -2
A).##^ALLOWS THE ^SYSTEM ^ADMINISTRATOR TO CREATE/MODIFY A ^^SCDMAP.SYS\\ FILE
(WHICH MAPS ^SCHEDULER ^TYPES TO ^SCHEDULER ^CLASSES)
.INDENT -2
B).##^ALLOWS THE ^SYSTEM ^ADMINISTRATOR TO MOVE ANY ^^SCDMAP.SYS\\ FILE TO THE ^^SYS\\
AREA (SO THAT THE NEW MAP IS BEING USED BY NEW ^^LOGIN\\'S).
.INDENT -2
C).##^ALLOWS THE ^SYSTEM ^ADMINISTRATOR TO AUTOMATICALLY UPDATE THE CLASS OF ALL
LOGGED IN JOBS.
.LEFT MARGIN 0
.SKIP 1
.HL 2^^RELATION TO OTHER PROGRAMS
.SKIP 1
^^SCDSET\\ IS VALUABLE ONLY FOR A SITE RUNNING VERSION 6.02 OR LATER OF
THE ^^DEC\\SYSTEM-10 MONITOR. ^SEVERAL OF ^^SCDSET\\'S AUXILIARY
FUNCTIONS REQUIRE VERSION 4 OF ^^ACCT.SYS\\.
^THIS REQUIRES NEW VERSIONS OF THREE OTHER SYSTEMS/PROGRAMS THAT ACCESS
^^ACCT.SYS\\: ^^LOGIN\\ (VERSION 56A OR LATER), ^^REACT\\ (VERSION
31 OR LATER) AND ^^SPRINT\\-10 (VERSION 2A(1056) OR LATER).
.SKIP 1
.HL 2 <DESIGN GOALS
.SKIP 1
.LEFT MARGIN 5
.INDENT -2
A).##^WRITE A SIMPLE, EASY TO USE PROGRAM THAT HAS ENOUGH HOOKS TO DO
ANYTHING THAT THE ^^SCHED.\\#MONITOR CALL CAN DO.
.INDENT -2
B).##^IMPLEMENT IT IN SOME HIGHER LEVEL LANGUAGE SO THAT MODIFIBATION
OF ^^SCDSET\\ BY THE ^SYSTEM ^ADMINISTRATOR IS EASIER. (^^FORTRAN\\-10 WAS CHOSEN
ARBITRARILY.)
.LEFT MARGIN 0
.SKIP 1
.HL 2 <BIBLIOGRAPHY
.SKIP 1
^SEE THE ^\^SYSTEM ^ADMINISTRATOR'S ^GUIDE TO THE 6.02 ^SCHEDULER\&, AND THE APPROPRIATE
DOCUMENTATION FOR ^^REACT\\, ^^LOGIN\\, AND ^^SPRINT\\-10.
.PAGE
.HL 1<PRIVILEGES REQUIRED
.SKIP 1
.HL 2
^FOR MANIPUATING A <SCDMAP.SYS FILE, NO PRIVILEGES ARE
REQUIRED (EXCEPT AS NEEDED TO MOVE THAT FILE TO THE <SYS AREA).
.SKIP 1
.HL 2
^FOR EXERCISING THE <SCHED.#MONITOR CALL, ALL PRIVILEGES ARE REQUIRED.
^THE USER MUST BE LOGGED IN AS [1,2], OR THE PROGRAM MUST HAVE ^^JACCT\\
PRIVILEDGES. ^THESE ARE THE RESTRICTIONS OF THE MONITOR CALL.
.SKIP 1
.HL 2
^THE ^^READ/SET\\ FUNCTIONS OF ^^SCDSET\\ ASSUME THE USER IS [1,2] AND
WILL OTHERWISE FAIL.
.SKIP 2
.HL 1^^CAUTIONS\\
.SKIP 1
.HL 2
^THE ^SYSTEM ^ADMINISTRATOR IS STRONGLY ADVISED TO RUN ^^SCDSET\\
IN A HIGH PRIORITY QUEUE (^^HPQ\\). ^THIS WILL ASSURE THAT HIS/HER
WORK IS UNAFFECTED BY SYSTEM QUOTA'S AND SYSTEM LOAD.
.SKIP 1
.HL 2
^^HPQ\\ IS NOT REQUIRED WHEN CREATING/MODIFYING A ^^SCDMAP.SYS\\
FILE, AND IS IN FACT DISCOURAGED BECAUSE IT HAS A DETRIMENTAL EFFECT UPON
SYSTEM PERFORMANCE.
.SKIP 2
.HL 1^^FUNCTIONS\\
.SKIP 2
^THE PROGRAM ^^SCDSET\\ PROMPTS THE USER WITH A MESSAGE
ASKING FOR A COMMAND (AND OPTIONALLY A PARAMETER SELECTING
A PARTICULAR FUNCTION ASSOCIATED WITH THE COMMAND). ^THE
USER TYPES IN THE NAME OF THE COMMAND AND IF NECESSARY THE OPTIONAL
PARAMETER.
.SKIP 1
.LM 5
^COMMANDS
.SKIP 1
.HL 2 ^^HELP\\
TYPES OUT HELP TEXT
.B 1
.HL 2 ^^EXIT\\
RETURNS TO THE MONITOR
.B 1
.HL 2 ^^UPDATE JOBS\\
^THE ^^UPDATE\\ ^^JOBS\\ COMMAND CALLS THE ^^FIXJOB\\ ROUTINE.
^THIS ROUTINE FIRST REMINDS THE ^SYSTEM ^ADMINISTRATOR THAT A NEW ^^SCDMAP.SYS\\ FILE
SHOULD BE ON THE ^^SYS\\ AREA BY ASKING HIM IF HE WISHES TO MOVE ONE
THERE. ^IF THE ^SYSTEM ^ADMINISTRATOR DOES WANT TO MOVE A MAP TO THE
^^SYS\\ AREA, ^^FIXJOB\\ CALLS THE ^^MOVMAP\\ ROUTINE TO DO THAT WORK
(SEE 4.3.5). ^^FIXJOB\\ THEN
RUNS THROUGH EACH LOGGED IN JOB, GETS THAT JOB'S ^^PPN\\,
DETERMINES WHETHER OR NOT TO USE THE BATCH HALF OF
THE ^^SCDMAP.SYS\\ CURRENTLY ON ^^SYS\\, LOOKS IN
^^ACCT.SYS\\ FOR THE ^SCHEDULER ^TYPE OF THAT USER, AND EXECUTES THE ^^SCHED.\\#MONITOR CALL
TO PUT THAT JOB IN THE RIGHT ^SCHEDULER ^CLASS. ^IT PRINTS OUT AN ERROR
MESSAGE FOR EACH LOGGED IN JOB IT
COULD NOT FIND IN ^^ACCT.SYS\\ OR FOR WHICH THE ^^SCHED.\\#MONITOR CALL FAILED.
^THE ^^FIXJOB\\ ROUTINE DOES NOT EXECUTE THE ^^SCHED.\\#MONITOR CALL FOR
[2,5] JOBS, OR FOR ITS OWN JOB.
.B 1
.HL 2 ^^EDIT\\
^THE ^E^D^I^T ^COMMAND CALLS THE ^^MAKMAP\\ SUBROUTINE.
^THIS ROUTINE WILL CREATE/MODIFY A ^^SCDMAP.SYS\\ FILE.
^THERE ARE EIGHT (8) SUBCOMMANDS AVAILABLE:
.SKIP 1
.LS
.LE
^^HELP\\ -
TYPE OUT A HELP TEXT
.B 1
.LE
^^EXIT\\ -
EXIT TO TOP LEVEL
.B 1
.LE
^^READ\\ -
READ IN A ^^SCDMAP.SYS\\ FILE FOR MODIFICATION
.B 1
.LE
^^WRITE\\ -
WRITE OUT A ^^SCDMAP.SYS\\ FILE TO ANY DEVICE OR AREA
.B 1
.LE
^^RANGE\\ -
CHANGE ANY RANGE OF ^SCHEDULER ^TYPES TO ^SCHEDULER ^CLASSES IN THE MAP
.B 1
.LE
^^ONE CLASS\\ -
CHANGE ONE ^SCHEDULER ^TYPE TO A ^SCHEDULER ^CLASS IN THE MAP
.B 1
.LE
^^TYPE\\ -
TYPE OUT ANY RANGE OF ^SCHEDULER ^TYPES
.B 1
.LE
^^COPY/SET\\ -
^THE ^C^O^P^Y COMMAND CALLS THE ^^MOVMAP\\ ROUTINE. ^THIS
FUNCTION MERELY COPIES A FILE FROM ANY AREA OR DEVICE TO THE ^^SYS\\
AREA. ^^PIP\\ SHOULD BE ABLE TO DO THIS WORK, BUT THIS ROUTINE IS
PROVIDED FOR THE CONVENIENCE OF THE ^SYSTEM ^ADMINISTRATOR.
.ELS.B 1
.HL 2 ^^READ/SET FUNCTIONS\\
^THE USER TYPES <READ OR <SET ON THE KEYBOARD FOLLOWED
BY A COMMA AND A PARAMETER FROM THE FOLLOWING LIST. ^THESE
FUNCTIONS DIRECTLY EXECUTE THE <SCHED. MONITOR CALL.
.LS.LE
^^MTS INTERVAL\\ -
^THIS FUNCTION READS OR SETS THE
^MEDIUM ^TERM ^SCHEDULING ^INTERVAL. (^THE INTERVAL AT WHICH RESOURCE
QUOTA ENFORCEMENTS ARE MADE.) ^THE INTERVAL IS IN JIFFIES.
.SKIP 1
.LE
^^MCU INTERVAL\\ -
^THIS FUNCTION READS OR SETS THE ^MINIMUM ^CORE ^USAGE QUOTA
ENFORCEMENT INTERVAL. ^THIS MEASUREMENT IS IN SECONDS.
.SKIP 1
.LE
^^CLASS QUOTAS\\ -
^THIS FUNCTION READS OR SETS
THE PERCENTAGE OF THE SYSTEM THAT A ^SCHEDULER ^CLASS
CAN USE IF THE TIME IS AVAILABLE. ^THE QUOTAS CAN BE FIXED
(I.E. 10% AND NO MORE).
.SKIP 1
.LE
^^TIMESLICE\\ -
^THIS FUNCTION READS OR SETS THE TIME SLICES
FOR THE TWO ^SCHEDULER QUEUES. ^THIS MEASUREMENT IS IN MILLISECONDS.
(^INTERNALLY THE ^SCHEDULER STORES THIS VALUE IN LOCAL JIFFIES, SO
IT MAY NOT BE POSSIBLE TO ADJUST THE TIME SLICE BY A FEW MILLISECONDS.)
.SKIP 1
.LE
^^CHANNEL UTILIZATION\\ -
^THIS FUNCTION READS OR SETS THE DESIRED
PERCENTAGE OF USE FOR EACH SWAPPING CHANNEL.
.SKIP 1
.LE
^^JOB CLASS\\ -
^THIS FUNCTION READS OR SETS THE ^SCHEDULER
^CLASS OF ALL LOGGED IN JOBS.
.SKIP 1
.LE
^^PROT 0\\ -
^THIS FUNCTION READS OR SETS THE ^SCHEDULER
CONSTANT CALLED ^^PROT0\\. ^IT IS ONE OF THE TWO CONSTANTS USED
WHEN CALCULATING THE ^MINIMUM ^CORE ^USAGE QUOTA.
^THE MEASUREMENT IS IN MICROSECONDS.
.SKIP 1
.LE
^^RUNTIME BY CLASS\\ -
^THIS FUNCTION READS THE AMOUNT OF RUNTIME USED BY
EACH CLASS SINCE THE LAST TIME THAT A CLASS QUOTA WAS CHANGED.
^THE MEASUREMENT IS IN JIFFIES. ^THE ROUTINE ALSO PRINTS OUT THE
PERCENTAGE OF RUNTIME EACH CLASS HAS USED.
.SKIP 1
.LE
^^EXPONENTIAL FACTOR\\ -
^THIS FUNCTION READS OR SETS THE EXPONENTIAL
AVERAGING FACTOR (DEPENDENCY UPON THE PAST). ^IT IS IN THE RANGE
0-10000 AND IS USED AS A SCALED FRACTION.
.SKIP 1
.LE
^^PROT\\ -
^THIS FUNCTION READS OR SETS THE VALUE OF THE
^SCHEDULER CONSTANT CALLED ^^PROT\\. ^IT IS ONE OF THE CONSTANTS
USED IN CALCULATING THE ^MINIMUM ^CORE ^USAGE QUOTA.
^THE MEASUREMENT IS IN MICROSECONDS.
.SKIP 1
.LEFT MARGIN 0
.BR
.SKIP 2
.ELS
.HL 1^^COMPILING INSTRUCTIONS\\
.SKIP 1
.HL 2
^THERE ARE TWO MODULES NECESSARY TO COMPILE AND RUN ^^SCDSET\\.
^THEY ARE ^^SCDSET.FOR\\ AND ^^SCDEXE.MAC\\. ^^SCDSET\\ CONTAINS THE
TOP LEVEL COMMAND LOOP, THE ERROR MESSAGE ROUTINE, ALL THE FUNCTIONS,
AND ROUTINES TO DO ALL THE WORK REQUIRED BY THE ^SYSTEM ^ADMINISTRATOR.
^^SCDEXE\\ CONTAINS THE FEW ^^MACRO\\ ROUTINES NECESSARY TO EXECUTE
THE ^^SCHED.\\#MONITOR CALL AND TO GATHER ENVIRONMENTAL INFORMATION NOT AVAILABLE
FROM ^^FORTRAN\\. ^VERSION FOUR (4) OF THE ^^FORTRAN\\-10 COMPILER
WAS USED TO COMPILE THIS CODE. ^ANY ^^MACRO\\ SHOULD BE ABLE TO HANDLE
THE ^^SCDEXE\\ MODULE. ^^A SIMPLE "^^LOAD SCDEXE, SCDSET\\" AND THEN
A SAVE SHOULD BE SUFFICIENT TO MAKE A COPY OF THE ^^SCDSET\\ PROGRAM.
.SKIP 2
.HL 1^^THE SCDMAP.SYS FILE\\
.SKIP 1
.HL 2
^THE ^^SCDMAP.SYS\\ FILE SHOULD ALWAYS BE ON THE ^^SYS\\ AREA
WHEN YOUR SYSTEM IS RUNNING A 6.02 MONITOR AND A ^^LOGIN\\ THAT
SETS 6.02 QUOTAS. ^^LOGIN\\ WILL COMPLAIN IF THERE IS NO
^^SCDMAP.SYS\\ FILE ON ^^SYS\\.
.SKIP 1
.HL 2
^THE FILE CONTAINS 1024 (DECIMAL) NINE BIT ENTRIES (256 DECIMAL
WORDS). ^THE FIRST 512 ENTRIES CONSTITUTE THE MAP FOR TIMESHARE USERS,
THE SECOND 512 ENTRIES CONSTITUTE THE MAP FOR BATCH USERS.
^EACH ENTRY CONTAINS A NUMBER BETWEEN ZERO AND THIRTY-ONE
INCLUSIVE (0-31) SPECIFYING A ^SCHEDULER ^CLASS.
^THERE IS AN ENTRY FOR EACH OF THE 512
^SCHEDULER ^TYPES FOR BOTH TIMESHARE AND BATCH.
^THUS AT LOGIN TIME, ^^LOGIN\\ LOOKS IN ^^ACCT.SYS\\
FOR THE ^SCHEDULER ^TYPE OF THE ^^PPN\\ AND THEN LOOKS IN
^^SCDMAP.SYS\\ FOR THE CURRENT ^SCHEDULER ^CLASS FOR THAT
^SCHEDULER ^TYPE AND JOB TYPE (TIMESHARE OR BATCH).
^FOR SITES THAT DO NOT WISH TO DIFFERENTIATE BETWEEN
TIMESHARE AND BATCH, THE SECOND HALF OF THE MAP SHOULD BE
IDENTICAL TO THE FIRST HALF.
.SKIP 1
.HL 2
^THE FORMAT OF THE ^^SCDMAP.SYS\\ FILE IS AS FOLLOWS:
.NOFILL
BITS
0-8 9-17 18-26 27-35
*****************************************
WORD 0 * N0 * N1 * N2 * N3 *
*****************************************
WORD 1 * N4 * N5 * N6 * N7 *
*****************************************
WORD 2 * N8 * N9 * N10 * N11 *
*****************************************
/ /
/ /
*****************************************
WORD 127 * N508 * N509 * N510 * N511 *
*****************************************
WORD 128 * M0 * M1 * M2 * M3 *
*****************************************
WORD 129 * M4 * M5 * M6 * M7 *
*****************************************
WORD 130 * M8 * M9 * M10 * M11 *
*****************************************
/ /
/ /
*****************************************
WORD 255 * M508 * M509 * M510 * M511 *
*****************************************
.SKIP 1
.FILL
***WHERE N^^XXX\\ IS THE LOCATION OF THE ^SCHEDULER ^CLASS
FOR TIMESHARE USERS OF ^SCHEDULER ^TYPE ^^XXX\\ (AS STORED IN ^^ACCT.SYS\\),
AND M^^XXX\\ IS THE LOCATION OF THE
^SCHEDULER ^CLASS FOR BATCH USERS OF ^TYPE ^^XXX\\.
.SKIP 2
.HL 1^^WARNINGS\\
.SKIP 1
.HL 2
^IT IS VERY EASY WHEN USING ^^SCDSET\\ TO HALT ALL
PRODUCTIVE WORK BEING DONE ON THE SYSTEM. ^MISUNDERSTANDINGS
OF HOW THE SCHEDULER WORKS OR TYPING ERRORS WHEN USING
^^SCDSET\\ COULD DRASTICALLY AFFECT SYSTEM PERFORMANCE.
^THE ^SYSTEM ^ADMINISTRATOR IS STRONGLY URGED TO EXPERIMENT
WITH THIS PROGRAM AND THE 6.02 SCHEDULER DURING NON-PRODUCTION
TIMESHARING, UNTIL HE/SHE BECOMES FAMILIAR WITH BOTH
^^SCDSET\\ AND THE SCHEDULER.