Browse Prior Art Database

Deadlock Detecting Enqueue Dequeue

IP.com Disclosure Number: IPCOM000073688D
Original Publication Date: 1971-Jan-01
Included in the Prior Art Database: 2005-Feb-22
Document File: 1 page(s) / 12K

Publishing Venue

IBM

Related People

Obermarck, RL: AUTHOR

Abstract

Serialization of the use of data processing resources, such as addressed data, between competing programs is handled by control functions called enqueue-dequeue routines. Two problems are evident in most such routines. 1) They do not detect potential deadlocks. Program 1 controls resource A and requests resource B while Program 2 controls resource B and requests resource A. The last request will cause a deadlock between the two programs. 2) If a program requests a resource which another program controls, the second program is arbitrarily made to wait until the first program releases the resource.

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

Page 1 of 1

Deadlock Detecting Enqueue Dequeue

Serialization of the use of data processing resources, such as addressed data, between competing programs is handled by control functions called enqueue-dequeue routines. Two problems are evident in most such routines.
1) They do not detect potential deadlocks. Program 1 controls

resource A and requests resource B while Program 2 controls

resource B and requests resource A. The last request will

cause a deadlock between the two programs.
2) If a program requests a resource which another program

controls, the second program is arbitrarily made to

wait until the first program releases the resource.

In the present method, each program requesting a resource is given a unique identity that is retained as long as it maintains any outstanding requests. The identity is the row and column number within a two-dimensional table used for deadlock detection. Requests for resources are maintained in the chronological order of the requests, each request containing the identity of the requestor.

If a program requests a resource held by another program, the intersection of the requesting program's row and holding program's column within the deadlock- detection table is incremented. (All prior requestors which must release the resource before the current program can gain control of it are considered holders.) If there are no prior requestors, the current program is informed, and control is returned to it; otherwise a deadlock check must be made....