Table of Contents

DMKTHI Abstract

Statistics

Type ASSEMBLE
Source Lines : 968
Fixes Applied : 2
Most Recent Version : Thursday, December 7, 1978
Last Fix ID : [R09251DK]

Synopsis

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