Browse Prior Art Database

Management of Input-Output Buffers

IP.com Disclosure Number: IPCOM000041828D
Original Publication Date: 1984-Mar-01
Included in the Prior Art Database: 2005-Feb-03
Document File: 2 page(s) / 14K

Publishing Venue

IBM

Related People

Meacock, G: AUTHOR

Abstract

This article describes a method of managing multiple input-output buffers for the transient data component of a data base-data communication product such as the IBM Customer Information Control System (CICS/VS) and addresses the problem of I/O buffer pre-emption. It should be noted that CICS/VS intrapartition transient data allows application programs to add records to and remove records from queues that are managed in a first-in, first-out (FIFO) manner. The records for each queue are held on a series of control intervals on a VSAM (Virtual Storage Access Method) data set. At any instant a control interval will hold records for one and only one queue. Before a record can be added to or removed from a queue, the latest copy of the relevant control interval must be present in one of the I/O buffers used for transient data.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 1 of 2

Management of Input-Output Buffers

This article describes a method of managing multiple input-output buffers for the transient data component of a data base-data communication product such as the IBM Customer Information Control System (CICS/VS) and addresses the problem of I/O buffer pre-emption. It should be noted that CICS/VS intrapartition transient data allows application programs to add records to and remove records from queues that are managed in a first-in, first-out (FIFO) manner. The records for each queue are held on a series of control intervals on a VSAM (Virtual Storage Access Method) data set. At any instant a control interval will hold records for one and only one queue. Before a record can be added to or removed from a queue, the latest copy of the relevant control interval must be present in one of the I/O buffers used for transient data. It should be noted that CICS/VS serializes processing of requests for each queue and allows concurrent processing of requests for different queues. At any time an I/O buffer can be in one of three states: 1. Unallocated - empty: It does not contain a copy of any control interval and it is available for allocation. 2. Unallocated - valid: It contains the latest copy of control interval 'n' and is available for allocation. 3. Allocated: It contains the latest copy of control interval 'n' and is not available for allocation as the data is undergoing logical or physical modification. The transitions between states are: 1. Unallocated/empty Allocated. 2. Unallocated/valid Allocated. 3. Allocated Unallocated/valid. 4. Allocated Unallocated/empty. Transition 4 represents an optimization on input and occurs when the control interval has been (logically) emptied. Whenever control interval 'n' has to be processed, CICS/VS searches for: 1. The I/O buffer that contains the latest copy of control interval 'n' - it will have the status of unallocated/valid; 2. Any I/O buffer, the status of which is unallocated/empty; 3. The least recently used I/O buffer, the status of which is unallocated/valid. For cases 2 and 3, control interval 'n' must be read from disk. An optimization on output is to initialize the I/O buffer when the control interval is (logically) empty. The processing required for case 3 can be simplified by assuming that as the in-store copy of a control interval is physically modified, then the disk copy of the same control interval is kept in step. This is done while the I/O buffer is in the allocated state. To implement th...