Google
 

Trailing-Edge - PDP-10 Archives - cuspbinsrc_2of2_bb-fp63b-sb - 10,7/scdset/scdset.rno
There is 1 other file named scdset.rno in the archive. Click here to see a list.
.;23-JAN-78
.LM0.RM70.F.J.FLAG CAP.SP1.TS5
\\
<SCDSET.MEM -- ^FOR ^VERSION 3 OF <SCDSET
.BR
^JAN 1978
.FG30
^^COPYRIGHT (C) 1977,1978 BY
.BR
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
.B 2
THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND 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. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
.B 1
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
EQUIPMENT CORPORATION.
.B 1
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL\\.
.PG
.T <SCDSET.MEM
.BR
<SCDSET: ^A ^SCHEDULER ^PARAMETER ^SETTING ^PROGRAM
.BR
#####FOR USE BY THE ^SYSTEM ^ADMINISTRATOR
.B3
1.0##<OVERVIEW
.B2
1.1##^PURPOSE
.B1
^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:
.B1.LM9.I-4
1.##^ALLOWS THE ^SYSTEM ^ADMINISTRATOR TO CREATE/MODIFY A <SCDMAP.SYS FILE (WHICH
MAPS ^SCHEDULER ^TYPES TO ^SCHEDULER ^CLASSES).
.B1.I-4
2.##^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).
.B1.I-4
3.##^ALLOWS THE ^SYSTEM ^ADMINISTRATOR TO AUTOMATICALLY UPDATE THE CLASS OF ALL LOGGED IN JOBS.
.B2.LM0
1.2##^RELATION TO ^OTHER ^PROGRAMS
.B1
^THIS ^VERSION OF <SCDSET IS VALUABLE ONLY FOR A SITE RUNNING THE
SCHEDULER <LIR AND ^VERSION 6.03 OR 6.04 AND LATER VERSIONS 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 56^A OR LATER),
<REACT (^VERSION 31 OR LATER) AND <SPRINT-10 (^VERSION 2^A(1056) OR LATER).
.B2
1.3##<DESIGN ^GOALS
.B1.LM9.I-4
1.##^WRITE A SIMPLE, EASY TO USE PROGRAM THAT HAS ENOUGH HOOKS TO DO ANYTHING THAT THE 
<SCHED. MONITOR CALL CAN DO.
.B1.I-4
2.##^IMPLEMENT IT IN SOME HIGHER LEVEL LANGUAGE SO THAT MODIFICATION OF <SCDSET BY THE ^SYSTEM
^ADMINISTRATOR IS EASIER. (<FORTRAN-10 WAS CHOSEN ARBITRARILY.)
.LM0.PG
1.4##^BIBLIOGRAPHY
.B1
^SEE THE ^SYSTEM ^ADMINISTRATOR'S ^GUIDE TO THE 6.02 ^SCHEDULER, AND THE APPROPRIATE DOCUMENTATION OF  <REACT, <LOGIN, AND <SPRINT-10.
.B3
2.0##<PRIVILEGES <REQUIRED
.B1
^FOR MANIPULATING A <SCDMAP.SYS FILE, NO PRIVILEGES ARE REQUIRED (EXCEPT AS NEEDED TO MOVE THAT FILE TO THE <SYS AREA).
.B1
^FOR EXERCISING THE <SCHED. MONITOR CALL, ALL PRIVILEGES ARE REQUIRED. ^THE USER MUST BE LOGGED IN AS [1,2], OR THE
PROGRAM MUST BE <JACCT PRIVILEDGES. ^THESE ARE THE RESTRICTIONS OF THE MONITOR CALL.
.B1
^THE <READ/SET FUNCTIONS OF <SCDSET ASSUME THE USER IS [1,2] AND WILL OTHERWISE FAIL.
.B3
3.0##<CAUTIONS
.B1
^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.
.B1
<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.
.B3
4.0##<FUNCTIONS
.B1
^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.
.B1
^COMMANDS:
.B1.LM9.I-4
1.##<HELP#-#^TYPES OUT HELP TEXT.
.B1.I-4
2.##<EXIT#-#^RETURNS TO THE MONITOR
.LM0.PG
4.1##^UPDATE ^JOBS
.B1
^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. <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.
.B2
4.2##<EDIT
.B1
^THE <EDIT ^COMMAND CALLS THE <MAKMAP SUBROUTINE. ^THIS ROUTINE WILL CREATE/MODIFY A <SCDMAP.SYS FILE.
^THERE ARE EIGHT (8) SUBCOMMANDS AVAILABLE:
.B1.LM9.I-4
1.##<HELP#-#^TYPE OUT A HELP TEXT.
.B1.I-4
2.##<EXIT#-#^EXIT TO TOP LEVEL.
.B1.I-4
3.##<READ#-#^READ IN A <SCDMAP.SYS FILE FOR MODIFICATION.
.B1.I-4
4.##<WRITE#-#^WRITE OUT A <SCDMAP.SYS FILE TO ANY DEVICE OR AREA.
.B1.I-4
5.##<RANGE#-#^CHANGE ANY RANGE OF ^SCHEDULER ^TYPES TO SCHEDULER ^CLASSES IN THE MAP.
.B1.I-4
6.##<ONE <CLASS#-#^CHANGE ONE ^SCHEDULER ^TYPE TO A ^SCHEDULER ^CLASS IN THE MAP.

.B1.I-4
7.##<TYPE#-#^TYPE OUT ANY RANGE OF ^SCHEDULER ^TYPES.
.B1.I-4
8.##<COPY/SET#-#^THE <COPY 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.
.LM0.PG
4.3##<READ/SET ^FUNCTIONS
.B1
^THE USER TYPES <READ OR <SET ON THE KEYBOARD FOLLOWED BY A COMMA AND A PARAMETER FORM THE 
FOLLOWING LIST. ^THESE FUNCTIONS DIRECTLY EXECUTE THE <SCHED. MONITOR CALL.
.B1.LM9.I-4
1.##<MS <INTERVAL#-#^THIS FUNCTION READS OR SETS THE ^MICRO ^SCHEDULING ^INTERVAL. (^THE INTERVAL AT WHICH THE 
SCHEDULER CHANGES WHICH CLASS IT WILL SELECT FROM FIRST DURING THE NEXT SCHEDULING INTERVAL).
^THE INTERVAL IS IN JIFFIES.
.B1.I-4
2.##<PRIMARY <PERCENTAGES#-#^SYSTEM USAGE PERCENTAGE FOR A PARTICLAR JOB CLASS. ^THE SUM
OF ALL PRIMARY PERCENTAGES MAY BE FIXED, IN WHICH CASE A JOB WILL ONLY BE CHOSEN TO RUN WHEN ITS
CLASS HAS HIGHEST PRIORITY.
.B1.I-4
3.##<TIME <BASE#-#^BASE RUN QUANTA FOR EITHER RUN QUEUE. ^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.)
.B1.I-4
4.##<JOB <CLASS#-#^THIS FUNCTION READS OR SETS THE ^SCHEDULER ^CLASS OF ALL LOGGED IN JOBS.
.B1.I-4
5.##<PROTOT#-#^THIS FUNCTION READS OR SETS THE ^SCHEDULER CONSTANT CALLED <PROTOT. ^IT IS ONE OF THE THREE CONSTANTS USED WHEN 
CALCULATING THE ^MINIMUM ^CORE ^USAGE QUOTA. ^THE MEASUREMENT IS IN MICROSECONDS.
.B1.I-4
6.##<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.
.B1.I-4
7.##<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.
.B1.I-4
8.##<DEFAULT <CLASS#-#^THIS IS THE DEFAULT CLASS THAT NEW JOBS ARE PLACED INTO WHEN THEY FIRST
LOGIN. ^THIS CLASS IS USED UNTIL IT IS CHANGED BY <LOGIN AFTER <LOGIN HAS READ THE
SPECIFIED JOB CLASS FROM <SCDMAP.SYS.
.PG
.B1.I-4
9.##<PROT1#-#^THE IN-CORE TIMESLICE USED AFTER A JOB HAS BEEN EITHER EXPIRED ITS INITIAL IN-CORE PROTECT
TIME. ^THIS CONTROL THE RATE AT WHICH <I/O BOUND JOBS CIRCULATE AROUND THE RUN QUEUES.
.B1.I-4
10.#<PROTM#-#<PROTM IS THE MAXIMUM IN-CORE  PROTECT TIME THAT WILL BE ASSIGNED TO A JOB.
^IT SPECIFIES AN UPPER BOUND FOR VERY LARGE JOBS.
.B1.I-4
11.#<TIME <MULTIPLIER#-#^USED TO ASSIGN A LARGER QUANTUM RUNTIME FOR LARGE JOBS. ^THE QUANTUM RUNTIME IS COMPUTED
BY ADDING THE <TIME <BASE TO THE <TIME <MULTIPLIER MULTIPLIED BY THE JOB SIZE.
^THE RESULT IS COMPARED WITH A RUN QUANTUM MAXIMUM, AND THE SMALLER OF THE COMPUTED VALUE OR
MAXIMUM IS USED.
.B1.I-4
12.#<TIME <MAXIMUM#-#^THE MAXIMUM QUANTUM RUNTIME THAT IS USED, AS DESCRIBED ABOVE.
.B1.I-4
13.#<SECONDARY <ALLOCATION#-#^THE SECONDARY ALLOCATION FOR A SCHEDULER CLASS. ^WHEN NO RUNNABLE
JOB CAN BE FOUND IN THE PRIMARY CLASS THAT HAS BEEN SELECTED TO BE IN PROPORTION TO THEIR SECONDARY ALLOCATION.
.B1.I-4
14.#<RESPONSE <FAIRNESS#-#^THE RESPONSE FAIRNESS FACTOR CONTROL HOW OFTEN JOBS WILL BE
RUN ACCORDING TO THEIR ORDER IN THE "JUST SWAPPED IN LIST", IN PREFERENCE TO THE ALLOCATIONS SPECIFIED BY THE JOB CLASSES.
.B1.I-4
15.#<AVG <SWAP <TIME#-#^THIS PARAMETER IS AN ESTIMATE OF THE AVERAGE SWAP TIME FOR A TYPICAL 
JOB IN THE SYSTEM. IT CONTROLS THE RATE AT WHICH THE SWAPPER CHANGES FROM ONE CLASS TO THE
NEXT IN CHOSING JOBS TO SWAP IN.
.B1.I-4
16.#<BB <CLASS#-#^SELECTS WHICH CLASS IS BACKGROUND BATCH, A CLASS THAT IS RUN
WHENEVER THE SYSTEM IS OTHERWISE IDLE.
.B1.I-4
17.#<BB <SWAP <TIME#-#^ESTIMATE OF THE TIME REQUIRED TO SWAP A BACKGROUND BATCH JOB. ^THIS
IS USED BY THE SCHEDULER TO DECIDE WHEN THE SYSTEM HAS BEEN IDLE LONG ENOUGH TO PERMIT SWAPPING
IN A BACKGROUND BATCH JOB.
.B1.I-4
18.#<SCHEDULER <FAIRNESS#-#^THIS PARAMETER DETERMINES HOW OTEN <PQ2 JOBS WILL BE SCHEDULED AHEAD
OF <PQ1 JOBS. ^THIS PARAMETER ALLOWS COMPUTE BOUND JOBS TO RUN (ALBEIT SLOWLY) EVEN WHEN THERE
IS AN ABUNDANCE OF INTERACTIVE JOBS.
.PG
.B1.I-4
19.#<SWAPPER <FAIRNESS#-#^THIS PARAMETER DETERMINES HOW OFTEN <PQ2 JOBS ARE SWAPPED IN BEFORE <PQ1 JOBS.
^IT HAS THE SAME EFFECT ON THE SWAPPER AS THE SCHEDULER FAIRNESS FACTOR HAS ON THE SCHEDULER.
.B1.I-4
20.#<INCORE <FAIRNESS <FACTOR#-#^THE PARAMETER CONTROL HOW OFTEN AN OUT OF CORE JOB IS SCHEDULED BEFORE
FOR SWAPPING BEFORE A JOB THAT IS ALREADY IN CORE. ^THIS ALLOWS JOBS TO BE SWAPPED
IN WHEN MANY JOBS THAT ARE ALREADY INCORE ARE DOING ^^GETSEG\\'S.
.B1.I-4
21.#<CORE <SCHEDULING <INTERVAL#-#^THIS CONTROLS HOW QUICKLY THE SYSTEM WILL ASSUME THAT THERE IS SUFFICIENT
CORE FOR ALL JOBS AND STOP ACCOUNTING FOR INCORE PROTECT TIME AND USING IT TO REQUEUE
JOBS. ^THIS HAPPENS ON SYSTEMS WITH A LARGE AMOUNT OF CORE MEMORY OR WHEN THE SYSTEM HAS VERY FEW USERS.
.B3.LM0
5.0##<COMPILING <INSTRUCTIONS
.B1
^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.
.B3
6.0##<THE <SCDMAP.SYS <FILE
.B1
^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.
.B1
^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.
.PG
^THE FORMAT OF THE <SCDMAP.SYS FILE IS AS FOLLOWS:
.B1.LM0.RM52.NF.NJ.TS11,15,25,35,44
			#BITS
.B1.TS11,15,25,35,44
		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   *
	*****************************************
.B1.LM0.RM70.PS58,70.F.J
***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.
.B3
7.0##<WARNINGS
.B1
^IT IS VERY EASY WHEN USING <SCDSET TO HALT ALL PRODUCTIVE WORK BEING DONE ON THE SYSTEM.
^MISUNDERSTANINGS  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.
.B3
[^END OF <SCDSET.MEM]