.SBTTL INTRODUCTION .TITLE EVALU8 .IDENT "VOO3E" ; ; ; ; ; ; ; COPYRIGHT (C) 1974, DIGITAL EQUIPMENT CORP., MAYNARD, MASSACHUSETTS 01754. ; ; ; THE SOFTWARE DESCRIBED IN THIS DOCUMENT, INCLUDING BUT NOT LIMITED TO, IN- ; STRUCTION EXECUTION TIMES AND OPERATING SPEEDS IS FOR INFORMATION PURPOSES ; ONLY. ALL SUCH MATERIAL IS SUBJECT TO CHANGE WITHOUT NOTICE. ; CONSEQUENTLY DIGITAL MAKES NO CLAIM AND SHALL NOT BE LIABLE FOR ITS ACCU- ; RACY. ; ; THE SOFTWARE DESCRIBED IS FURNISHED TO THE PURCHASER UNDER A LICENSE FOR ; USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH THE INCLUSION OF ; DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT AS MAY ; OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; UNLESS SPECIFIED OTHERWISE, THE TERMS "RSX" AND "RSX-11" IN THIS DOCUMENT ; IMPLY "RSX-11D". ; ; ; ; ; VERSION: VOO3E ; AUTHOR: R. KLEINMAN ; DATE: 5 FEB 74 ; ; ; THIS MODULE CONTAINS ; 1-- CODE FOR EVALUATE ; ; .PAGE ;+ ;THIS TASK WILL MEASURE RSX-11D RESOURCE ALLOCATION ; ; ;IN THE AREA OF CORE, I/O AND POOL ALLOCATION IT WILL[VIA ASTS] ;MEASURE PARTITION "HOLES", POOL RESOURCES, AND TASK ACTIVITY ; ; ;IT IS CALLED VIA A "SEND/REQUEST" WITH THE FOLLOWING PARAMENTERS: ; WORD 0: # TICS BETWEEN EACH "SNAPSHOT" [<32K] ; WORD 1: 0 IF "RESUME" ENDS IT, ELSE = # SNAPSHOTS TO RUN [<32K] ; ; ; ;FINAL REPORTS ARE MADE TO CL [LUN1], STACK = 0, ; ;AS AN ALTERNATIVE, EVALU8 CAN BE TASK BUILT WITH 2 GLOBAL ;DEFINITIONS [SR.W0,SR.W1] COORESPONDING TO THE 2 WORDS ;ABOVE. IN THAT CASE, THE TASK WILL PERFORM CORRECTLY WHEN REQUESTED ;THRU MCR. THE PRIORITY SHOULD BE 250 [TO MEASURE RUNNING TASKS] ; ;IN CASE NO RESUME IS FORTHCOMING, THE ASTS WILL TERMINATE ON ;OVERFLOW [>32 K SNAPSHOTS]. THE FOLLOWING 2 GLOBALS THEN ARE CRUCIAL. ;- TPDNUM==10. ;NUMBER OF PARTITIONS MAX [ONLY THESE MRL'S WILL BE EXAMINED] TASNUM==40. ;NUMBER OF TASKS MAX [ONLY THESE WILL BE REPORTED] ;OVERLAY STRUCTURE:[EVALU8-(AST8,RPU8M-(RPU8A,RPU8B,RPU8C))] .PAGE .SBTTL CONSTANTS,MACROS AND DPBS LUNA=1 EFNA=5 .LIST MEB .MCALL WTSE$ ;WAIT FOR SINGLE EVENT FLAG .MCALL CALL ;CALL .MCALL RETURN ;RETURN .MCALL EXIT$ ;EXIT .MCALL QIO$ ;QI/O .MCALL RCVD$ ;RECEIVE .MCALL SPND$ ;SUSPEND .MCALL RSUM$ ;RESUME .MCALL ASTX$ ;AST EXIT .MCALL CMKT$ ;CANCEL MARK TIME REQUESTS .MCALL ENAR$ ;ENABLE AST RECOGNITION .MCALL IHAR$ ;INHIBIT AST RECOGNITION .MCALL MRKT$ ;MARK TIME .MCALL GTIM$ ;GET TIME PARAMETER .=.+202 ;INITIAL STACK DPEX:: EXIT$ ;EXIT DPB ; DPRCV: RCVD$ ,BFCMD ;RECEIVE DIRECTIVE FROM ANYONE, DPB ;BUFFER IN BFCMD ; DPSND: SPND$ ;SUSPEND DPB ; DPASTX:: ASTX$ ;AST EXIT DPB ; DPCMT:: CMKT$ 0,AST ;CANCEL FURTHER AST REQUESTS FROM MARK TIME ;[DPB] ; DPASTM:: MRKT$ 0,0,1,AST ;MARK TIME FOR N TICS - DPB [FOR AST] ;OFFSET "M.KTMG" FOR TIC COUNT LOCATION ; DPRES:: RSUM$ EVALU8 ;RESUME OWN TASK ; DPGTM1:: GTIM$ BFTIM1 ;TIME PARA - START DPGTM2:: GTIM$ BFTIM2 ;TIME PARA - END DPWT4:: WTSE$ EFNA ;WAIT FOR EV FLAG DPB ; DPQATT:: QIO$ IO.ATT,LUNA,0,0,0,0 ;QI/O ATTACH CL ; ; DPQDET:: QIO$ IO.DET,LUNA,EFNA,0,0,0 ;QI/O DETACH CL ; ;QI/O WRITE VIRTUAL DPQWTV:: QIO$ IO.WVB,LUNA,EFNA,0,0,0,<0,0,0> ; ;"Q.IOPL" IS OFFSET TO START OF PARA ;LIST .PAGE .SBTTL STORAGE TABLES-AST ;+ ;AST [NON-TIME CRITICAL TABLES] TAKE SEVERAL FORMS: ;POOL AL.FS==0 ;DP SUM OF ALL FREE POOL NODES AL.LG==4 ;LARGEST NUMBER OF FREE NODES AL.SM==6 ;SMALLEST NUMBER OF FREE NODES [* MUST BE LAST] AL.SZ==10 ;SIZE OF POOL TABLE ;TPDS: AP.ST==0 ;START OF TPD ENTRY [MUST BE FIRST] ;[IF=0,NO PARTITION IN USE AP.LM==2 ;DP SUM OF LARGEST HOLE IN 32 WORD CHUNKS AP.HM==6 ;DP SUM OF ALL 32 WORD CHUNKS OF FREE CORE AP.LG==12 ;LARGEST FREE AREA IN TPD AP.SM==14 ;*SMALLEST FREE AREA IN TPD* MUST BE LAST AP.SZ==16 ;SIZE OF TPD ENTRY ; ;TASKS: ;[ENTIRE TABLE MUST BE IN FIXED ORDER FOR OUTPUT] AT.NM==0 ;2 WORD RAD50 NAME OF TASK [MUST BE FIRST] ;[*NOT STD PTR IN CASE TASK REMOVED] ; AT.AC==4 ;NUMBER OF SNAPSHOTS WHEN ACTIVE AT.LC==6 ;NUMBER OF SNAPSHOTS WHEN CHECKPOINTED/LOADING AT.W4==10 ;NUMBER OF SNAPSHOTS WHEN WAITING FOR EV AT.RT==12 ;NUMBER OF SNAPSHOTS WHEN RUNDOWN/TERMINATED AT.SP==14 ;NUMBER OF SNAPSHOTS WHEN SUSPENDED AT.RA==16 ;NUMBER OF SNAPSHOTS WHEN RUNNABLE AT.RN==20 ;NUMBER OF SNAPSHOTS WHEN RUNNING AT.SZ==22 ;SIZE OF TASK TABLE ENTRY ; AT.NUM==6 ;# OF STATUS SUBDIVISIONS .MACRO TPDTAB N .NLIST ;NEXT TASK PARTITION TABLE .REPT AP.SZ-2 .BYTE 0 .ENDR .WORD 77777 ;SMALLEST HOLE SEEN [SET INITIALLY HIGH] .LIST .ENDM .MACRO TASTAB M .NLIST ;NEXT TASK TABLE .REPT AT.SZ .BYTE 0 .ENDR .LIST .ENDM .PAGE ;GENERATE TPD AND TASK TABLES ;MAXIMUM OF "TPDNUM" TPD'S, AND "TASNUM" TASKS TPDTBS:: ;TPD TABLES A=0 B=0 .REPT TPDNUM B=B+1 TPDTAB B .ENDR .WORD 0 ;INDICATES END OF TPD'S TASTBS:: ;TASK TABLES .REPT TASNUM A=A+1 TASTAB A .ENDR .WORD 0 ;INDICATES END OF TASK TABLE PLTBS:: ;POOL TABLE .REPT AL.SZ-2 .BYTE 0 .ENDR .WORD 77777 ;[SET SMALLEST # OF NODES TO INITIAL MAX] ; TASTBN:: ;NULL ENTRY FOR TASK TABLE .RAD50 / NULL/ .REPT AT.SZ-4 .BYTE 0 .ENDR .PAGE .SBTTL CONSTANTS, BUFFERS, MACROS TTIME:: 0 ;TOTAL TIME [IN SNAPSHOTS] THAT TASK RUNS MXMTVL==77770 ;VALUE AT WHICH MT CONSIDERED "MAX" PSW ==177776 ;PSW ADDRESS ASR3F ==177406 ;4K READ WRITE BFTIM1:: .REPT 8. ;BUFFER FOR TIME PARARMETER - START .WORD 0 .ENDR BFTIM2:: .REPT 8. ;BUFFER FOR TIME PARAMETER - END .WORD 0 .ENDR BFCMD: ;RECEIVE BUFFER .WORD 0,0 ;TASK NAME OF SENDER BFNTC:: .WORD SR.W0 ;# TICS BETWEEN EACH "SNAPSHOT" BFNSS:: .WORD SR.W1 ;# SNAPSHOTS [0-32K] .REPT 11. .WORD 0 .ENDR .MACRO DPADD A,B ;ADDITION OF A TO DOUBLE PRECISION B ADD A,B+2 ADC B .ENDM .PAGE .SBTTL ROOT SEGMENT CODE ;AWAKE!! ;DO RECEIVE [IF ANY] INIT: MOV #200,SP ;INITIATE STACK MOV #DPRCV,-(SP) EMT 377 ;WHETHER RECEIVE FAILED OR ;SUCCEEDED, ASSUME # TICS, TOTAL# ;SNAPSHOTS ARE CORRECT MOV BFNTC,R0 MOV R0,DPASTM+M.KTMG;SET # TICS FOR MARK TIME AST BLE IEXIT ;IF=0, FATAL ERROR MOV BFNSS,R2 ;GET # SNAPAHOTS