Patent GB-1436428-A (GB)
Title: Data processing apparatus
IPC: G06F11/34
Filed: 1973-09-04
Abstract: 1436428 Monitoring data processing systems INTERNATIONAL BUSINESS MACHINES CORP 4 Sept 1973 [31 Oct 1972] 41514/73 Heading G4A A monitor program stored in a data processing system selectively activates a hardware monitor, connected to the system, in response to events determined by the monitor program. Software and hardware monitoring tools may thus be used selectively to obtain effective performance evaluation, the results of which may be used to modify the system automatically to improve its efficiency. Software hooks are inserted into object programs including system control and application programs, either before entry into the system, or preferably, automatically by a measurement set-up routine 102. The hooking technique may make use of any instruction which causes an interruption of the normal stream of instruction execution. During the setting up process the operator may specify particular hardware counters to be assigned to tasks while other counters are to be used to monitor lines in the processing system. Execution of queued tasks then proceeds, 103, until an interrupt is encountered, 104. All interrupts other than machine check cause a branch to a measurement program. An applications program start loop interrupt, 105-108 causes an instruction to be issued to start all hardware/ software measurement counters, 109 before returning to "normal" execution. The measurement counters are stopped, 113, when an end loop interrupt is encountered, but may be restarted if multiple measurement passes are required, 114, 115, otherwise the application program hooks are removed, 116, and the data collected by the hardware counters are transferred to memory 117, for subsequent analysis by a monitor control program MONTROL. An interrupt which does not signify a system program hook or applications program hook or start or end loop is analysed by MONTROL, 112a, for appropriate action to be taken. System hook interrupts cause those hardware/ software counters assigned to system measurements to be started, 110, subsequent stopping of the counters, 113 and analysis of the interrupt 112a being as before. MONTROL stops the hardware counters since they are not required and causes a branch to the appropriate interrupt handling routine, e.g. I/O, program check, external. An interrupt resulting from a read direct RDD instruction causes a branch to a feedback control program MSFCP to analyse the feedback and possibly modify the system. A hook interrupt causes a branch to a routine Fig. 3B (not shown) in which operator requests to change the assignment of counters to tasks, halt collection of data without removing hooks, end the measurement program and remove hooks, or change the hooks, are handled. The feedback control program MSFCP is designed to maximize (1) the number of concurrent requests to an I/O subsystem (2) the transfer of data over a channel (3) the CPU/ channel utilization overlap, and to minimize the time for an I/O request to be stacked in a queue. Measurements of channel busy time; I/O device, e.g. disc, seek time obtained from hardware monitoring devices, and software measurements of CPU busy and wait times, length of I/O device request queues, I/O request service time CPU/channel overlap and so on, are combined and utilized to modify the system to improve its efficiency. An example of modifying technique is described with reference to Figs. 6A-6C (not shown) and includes detection of conditions in which a program is said to be CPU or I/O bound and selection of tasks which are heavy on I/O or CPU activity to relieve the situation.