Browse Prior Art Database

Precise Method to Prevent Lockout in an Input/Output Priority Queueing System

IP.com Disclosure Number: IPCOM000118312D
Original Publication Date: 1996-Dec-01
Included in the Prior Art Database: 2005-Apr-01
Document File: 2 page(s) / 53K

Publishing Venue

IBM

Related People

Berkel, E: AUTHOR [+3]

Abstract

Disclosed is a method for automatically, non-disruptively, and precisely preventing Input/Output (I/O) lockout (also known as starvation and possibly resulting in deadlock) in a computer system where I/O requests are queued by priority.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 53% of the total text.

Precise Method to Prevent Lockout in an Input/Output Priority Queueing
System

      Disclosed is a method for automatically, non-disruptively, and
precisely preventing Input/Output (I/O) lockout (also known as
starvation and possibly resulting in deadlock) in a computer system
where I/O requests are queued by priority.

      When I/O requests are queued by priority, it is possible for
work with a higher I/O priority to lock out work with a lower I/O
priority.  This is not necessarily a problem unless the locked-out
work is holding a resource required by other units of work.  In this
case, the  lockout can have a major impact on work in the computer
system.

Example:
  1.  A unit of work with an I/O priority of FF is constantly
       issuing I/O requests to volume "v".
  2.  A unit of work with an I/O priority of C1 obtains an ENQ
       on resource "r" and issues an I/O request for volume "v".
  3.  Another unit of work requests an exclusive ENQ on resource
       "r" and waits.
  4.  Other units of work request an ENQ on resource "r" and are
       suspended until the unit of work with I/O priority C1
       completes its I/O request.
  5.  Since the C1 priority work is locked out from doing I/O,
       the other work dependent on the C1 work running and
       releasing the ENQ is suspended indefinitely.

      The solution to the lockout problem is to periodically check
all queued I/O requests for requests that have been queued longer
than "t" time.  If a request has been queued longer than "t" time,
change the  priority of the request and all...