Type ASSEMBLE
Source Lines : 968
Fixes Applied : 2
Most Recent Version : Thursday, December 7, 1978
Last Fix ID : [R09251DK]
Module
DMKTHI - GIVE DATA ON UTILIZATION OF AND CONTENTION FOR MAJOR SYSTEM RESOURCES
Function
TO HANDLE THE 'INDICATE' CONSOLE FUNCTION
Attributes
SERIALLY REUSABLE, PAGEABLE, CALLED VIA SVC
Operation
1. CALL DMKSCNFD TO CHECK FOR ARGUMENTS, IF NONE FOUND ASSUME PROCESSING FOR INDICATE ONLY IF 'LOAD' OR DEFAULT OF NO PARAMETER FOUND GOTO PART 2 IF 'I/O' FOUND GO TO SECTION WHICH LOOKS FOR RUNNABLE USERS IN I/O WAIT STATE, PART 3. IF 'PAGING' FOUND GO TO SECTIONS TO HANDLE 'IND PAGING' FUNCTIONS, PARTS 4 AND 5. IF 'USER' FOUND HANDLE USER RESOURCE REQUEST FUNCTION PART 6. IF 'QUEUES' FOUND DISPLAY CURRENT MULTIPROGRAMMING SET PART 7. IF INVALID PARAMS FOUND SEND CANNED ERROR MSGS AND EXIT 2. INDICATE LOAD PROCESSING: USING REPLY MESSAGE DSECT GET BUFFER FOR REPLY AND MOVE IN THE SKELETON REPLY MESSAGE, THEN PATCH REPLY WITH INDICATE COMPONENT VALUES AS FOLLOWS: PICK UP SMOOTHED WAIT STATE NUMBERS FROM SCHEDULER, CONVERT TO PERCENTAGE IN PRINTABLE HEX. AND MOVE INTO REPLY. GET SMOOTHED NUMBERS OF USERS IN Q1 AND Q2 FROM DMKSCH CONVERT TO HEX AND MOVE INTO MESSAGE. GET SMOOTHED CORE UTILIZATION AND SCHEDULER CONTENTION RATIO NUMBERS, CONVERT TO HEX AND MOVE INTO REPLY CALL DMKQCNWT TO SEND REPLY TO USER, FREE BUFFER AND EXIT 3. INDICATE I/O PROCESSING: USING REPLY MESSAGE DSECT GET BUFFER FOR REPLY AND BUILD REPLY FIELD BY FIELD AS FOLLOWS: SCAN VMBLOK CHAIN LOOKING FOR IN Q NOT RUNNABLE USERS WHO ARE IN I/O WAIT. WHEN ONE IS FOUND PICK UP FROM HIS VMBLOK THE VIRTUAL ADDRESS OF THE DEVICE FOR WHICH HE LAST ISSUED A VIRTUAL I/O REQUEST. CALL DMKSCNVU TO LOCATE THE VIRTUAL DEVICE BLOCK ADDRESS AND THENCE THE POINTER TO THE CORRESPONDING REAL DEVICE ADDRESS. THEN USEDMKSCNRD TO GET THE FULL REAL DEVICE ADDRESS AND DMKCVTBH TO CONVERT THE RESULT TO EBCDIC HEX FOR INSERTION IN THE REPLY MESSAGE. ADD THE USERID FOR WHOM THE I/O IS BEING PERFORMED. EACH LINE OF THE REPLY MESSAGE MAY CONTAIN A MAXIMUM OF 5 FIELDS (USERID AND REAL DEVICE ADDRESS IN EACH FIELD) AS EACH LINE IS FILLED IT IS STACKED IN A BUFFER ONTO THE USER'S VMBLOK IN A CHAIN WHOSE ANCHOR POINT IS THE VMSTKO FIELD OF THE VMBLOK. WHEN THE LAST VMBLOK HAS BEEN SCANNED, THE LAST PARTIALLY FILLED REPLY LINE IS STACKED UP AND AN EXIT IS MADE. 4. INDICATE PAGING PROCESSING: USING A REPLY MESSAGE DSECT OBTAIN THE APPROPRIATE SIZED BUFFER AND BUILD AS MANY AS 5 FIELDS INTO REPLY AS FOLLOWS WHEN THE 'PAGING' PARAMETER IS ENCOUNTERED, A CALL TO DMKSCNFD IS MADE TO CHECK FOR THE 'WAIT' OR 'ALL PARAMETER IF NEITHER ARE FOUND, THE DEFAULT IS 'WAIT' FOR WHICH PROCESSING IS AS FOLLOWS: THE VMBLOK CHAIN IS SCANNED LOOKING FOR IN Q USERS, WHO ARE NOT RUNNABLE AND ARE IN PAGE WAIT. WHEN ONE IS FOUND, A FIELD IS ADDED TO THE REPLY MESSAGE CONTAINING THE USERID AND A COUNT OF THE NUMBER OF PAGES RESIDENT ON DRUM AND ON DISK. 5. INDICATE PAGING ALL PROCESSING: WHEN THE 'PAGING ALL' PARAMTERS ARE FOUND, THE REPLY MESSAGE CONSTRUCTED CONTAINS INFORMATION ON THE PAGE RESIDENCY COUNTS OF ALL USERS LOGGED ONTO THE SYSTEM. EACH LINE OF REPLY TO THE 'INDICATE PAGING ALL' COMMAND MAY CONTAIN A MAXIMUM OF 4 FIELDS, EACH CONTAINING THE USERID AND 3CHAR. DRUM RESIDENCY AND DISK RESIDENCY PAGE COUNT SEPARATED BY A COLON; THE STACK PROCEEDURE IS USED AS BEFORE TO ACCUMULATE THE REPLY MESSAGES. 6. INDICATE USER COMMAND PROCESSING: WHEN THE 'USER' PARAMETER IS ENCOUNTERED, THEN THE '*' IS ALLOWED BY ANY CLASS OF USER, AND IS THE DEFAULT. HOWEVER ONLY PRIVILEGED CLASSE USERS E ARE ALLOWED TO ACCESS VMBLOK DATA FROM OTHER USERS OF THE SYSTEM. DATA ACCORDING TO THE CONTENTS DESCRIBED ABOVE ARE CONVERTED TO DECIMAL AND STACKED ON THE USERS VMBLOK FOR REPLY. 7. INDICATE QUEUES COMMAND PROCESSING: THE'QUEUES' PARAMETER MAY ONLY BE USED BY PRIVILEGED USERS A SCAN IS MADE OF THE RUNLIST AND ELIGIBLE LISTS AND DATA RELATING TO THOSE USERS ARE DISPLAYED. THE DATA INCLUDE USERID, QUEUE INDICATOR (Q1,Q2,E1,E2), STATUS INDICATOR (RU, RA, PG, IO, EX, PS, OR --), PAGES RESIDENT AND MOST RECENT WORKING SET SIZE ESTIMATE. THE STACK SUBROUTINE IS USED TO ADD THE REPLY BUFFERS TO THE REQUESTOR'S VMBLOK. SUBSEQUENTLY DMKCFM OUTPUTS THE MESSAGES AND FREES UP THE BUFFER SPACE.
Calls to Other Routines
DMKCVTBD - TO CONVERT BINARY TO EBCDIC DECIMAL DMKCVTBH - TO CONVERT BINARY TO EBCDIC HEX DMKQCNWT - TO WRITE INDICATE RESPONSE TO USER DMKSCNFD - TO LOOK FOR INDICATE PARAMETERS IN COMMAND FIELDS DMKSCNVU - VIRTUAL DEVICE BLOCKS FROM VIRTUAL ADDRESS DMKSCNRD - FULL REAL DEVICE ADDRESS FROM REAL DEVICE BLOCK DMKFREE - TO OBTAIN STORAGE FOR REPLY MESSAGES DMKFRET - TO RELEASE STORAGE DMKERMSG - TO WRITE ERROR MESSAGES DMKTMRPT - TO OBTAIN CURRENT UP TO DATE VALUE OF VMVTIME