Method and system for deadlock detection and avoidance
First Claim
1. A method of operating a computing system supporting multiple processes, said method including the steps of:
- providing a set of monitors for controlling access to resources of the computer system, whereby a process has to enter a monitor in order to access a corresponding resource, and has to join an entry queue for the monitor if the resource is currently owned by another process;
responsive to a predetermined condition, examining processes queued on monitors to determine whether there is a deadlock situation; and
if such a deadlock is found, returning information about the identity of the processes and monitors involved in the deadlock.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention relates to a method of operating a computer system supporting multiple processes, and the intention is to avoid deadlock (an example of which is where process A owns resource A, and is waiting on resource B, but resource B is currently owned by process B, which is waiting on resource A). The method commences with receipt of a request from a first process for access to a resource of said computer system. If the requested resource is currently unavailable because it is currently owned by another process, the system examines which processes own or are waiting for other resources on the system, in order to try to detect whether adding the first process to a queue for the requested resource would cause a deadlock situation to arise. If so, the system will typically throw an exception, or possibly return an error to the request for the resource.
-
Citations
36 Claims
-
1. A method of operating a computing system supporting multiple processes, said method including the steps of:
-
providing a set of monitors for controlling access to resources of the computer system, whereby a process has to enter a monitor in order to access a corresponding resource, and has to join an entry queue for the monitor if the resource is currently owned by another process;
responsive to a predetermined condition, examining processes queued on monitors to determine whether there is a deadlock situation; and
if such a deadlock is found, returning information about the identity of the processes and monitors involved in the deadlock. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computing system supporting multiple processes, and including:
-
a set of monitors for controlling access to resources of the computer system, whereby a process has to enter a monitor in order to access a corresponding resource, and has to join an entry queue for the monitor if the resource is currently owned by another process;
means responsive to a predetermined condition for examining processes queued on monitors to determine whether there is a deadlock situation; and
means responsive to such deadlock being found for returning information about the identity of the processes and monitors involved in the deadlock. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer program product comprising program instructions encoded in machine readable form on a medium, said instructions when loaded into a computer system causing the system to perform the steps of:
-
providing a set of monitors for controlling access to resources of the computer system, whereby a process has to enter a monitor in order to access a corresponding resource, and has to join an entry queue for the monitor if the resource is currently owned by another process;
responsive to a predetermined condition, examining processes queued on monitors to determine whether there is a deadlock situation; and
if such a deadlock is found, returning information about the identity of the processes and monitors involved in the deadlock. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification